我正在尝试一个简单的windows窗体,它从sql server ce数据库中检索值。name表中有两列companyEmployee
行如下:

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.ExecuteScalarMSDN Documentation
执行查询并返回
查询返回的结果集。额外的列或行
被忽略。
如果您希望并需要处理结果集中的多行,请使用ExecuteReader()

10-07 16:34