C#选择查询失败,没有错误

C#选择查询失败,没有错误,c#,select,C#,Select,我在使用简单的SELECT查询时遇到了问题,我看不出它为什么不起作用 代码如下: conn.Open(); string GetPayrollQuery = "SELECT PayrollNo FROM [Employee] WHERE (FirstName + ' ' + LastName) = @Name"; OleDbCommand GetPayroll = new OleDbCommand(GetPayrollQuery, conn); GetPayroll.Paramete

我在使用简单的SELECT查询时遇到了问题,我看不出它为什么不起作用

代码如下:

conn.Open();

string GetPayrollQuery = "SELECT PayrollNo FROM [Employee] WHERE (FirstName + ' ' + LastName) = @Name";    
OleDbCommand GetPayroll = new OleDbCommand(GetPayrollQuery, conn);

GetPayroll.Parameters.AddWithValue("@Name", OleDbType.VarChar).Value = cbbEmployees.Text;

var GotPayroll = GetPayroll.ExecuteNonQuery();

MessageBox.Show(GotPayroll.ToString());

return Convert.ToInt32(GotPayroll);
代码运行良好,但没有提取数据。有人知道为什么会这样吗

我打赌@name将以“MikeSmith”而不是“Mike Smith”出现

  • 确保使用这些参数值在SQL中运行相同的查询


  • GetPayroll.ExecuteNonQuery()
    更改为
    GetPayroll.ExecuteScalar()
    ,以便返回单个结果

  • 更改
    GetPayroll.Parameters.AddWithValue(“@Name”,OleDbType.VarChar).Value=cbbeEmployees.Text
    to
    GetPayroll.Parameters.AddWithValue(“@Name”,cbbeEmployees.Text)

  • 三件事:

    • 尝试打开SQL探查器并检查您在数据库上执行的操作
    • 检查数据库排序规则,是否区分大小写
    • 删除ExecuteOnQuery(必须与update、delete、not select一起使用)并尝试executescalar(如果一行的一个结果被导出,则尝试填充datatable或使用datareader)

    使用
    cbb员工。选择text
    。解决了这个问题

    你能稍微整理一下吗?试试
    GetPayroll.ExecuteScalar()
    好吧,你正在设置一个查询,然后调用
    ExecuteOnQuery()
    GetPayroll.ExecuteScalar()
    返回与ExecuteOnQuery相同的结果。你能尝试更改设置参数的方式吗?尝试:
    GetPayroll.Parameters.Add(新的SqlParameter(“@Name”,cbbeemployees.Text))看一看。您还需要将
    ExecuteNonQuery
    更改为
    ExecuteScalar
    。我已经使用messagebox.show命令检查了这一点,但事实并非如此。