C#选择查询失败,没有错误
我在使用简单的SELECT查询时遇到了问题,我看不出它为什么不起作用 代码如下: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
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”出现
GetPayroll.ExecuteNonQuery()
更改为GetPayroll.ExecuteScalar()
,以便返回单个结果GetPayroll.Parameters.AddWithValue(“@Name”,OleDbType.VarChar).Value=cbbeEmployees.Text
toGetPayroll.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命令检查了这一点,但事实并非如此。