我遇到一个简单的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);
代码运行正常,但它没有提取数据。任何人都可以看到为什么会这样?
答案 0 :(得分:0)
我打赌@name将以“MikeSmith”而不是“Mike Smith”的身份出现。
答案 1 :(得分:0)
确保使用这些参数值在SQL中运行相同的查询。
将GetPayroll.ExecuteNonQuery()
更改为GetPayroll.ExecuteScalar()
,以便返回单个结果。
将GetPayroll.Parameters.AddWithValue("@Name", OleDbType.VarChar).Value = cbbEmployees.Text;
更改为GetPayroll.Parameters.AddWithValue("@Name", cbbEmployees.Text);
答案 2 :(得分:0)
3件事:
答案 3 :(得分:0)
使用cbbEmployees.SelectedText
。解决了这个问题。