我正在尝试一个简单的windows窗体,它从sql server ce数据库中检索值。name
表中有两列company
和Employee
。
行如下:
Name Company
XXX ABC
YYY DEF
我使用以下代码从数据库检索数据:
private void button1_Click(object sender, EventArgs e)
{
string conn = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlCeConnection con = new SqlCeConnection(conn);
SqlCeCommand cmd = new SqlCeCommand("select company from EMPLOYEES where name = @name", con);
cmd.Parameters.AddWithValue("@name",textBox1.Text);
con.Open();
try
{
object obj = new object();
obj = cmd.ExecuteScalar();
label1.Text = (string)obj;
}
finally
{
}
上述代码适用于表中的第一行,即当我在文本框中给出xxx时,abc将显示在表单中。但是当我在文本框中输入yyy时,返回空值。我是C_的业余爱好者。只是想学几个简单的例子。请帮我解决这个问题。谢谢
提前。
最佳答案
这是故意的。SqlCeCommand.ExecuteScalar
方法只返回第一行。
来源:SqlCeCommand.ExecuteScalar
MSDN Documentation:
执行查询并返回
查询返回的结果集。额外的列或行
被忽略。
如果您希望并需要处理结果集中的多行,请使用ExecuteReader()
。