我有这个查询,它给了我错误,无法在表tbl_emp_gs上插入null。我不知道这里的代码有什么问题。
con.Open();
sqc = con.CreateCommand();
string query1 = "INSERT INTO tbl_emp_gs (EmployeeID,StepID) VALUES ('"+ lblEmpID.Text +"', (Select StepID from tbl_gradestep where StepID Like @grade))";
sqc.Parameters.AddWithValue("@grade",cmbStepNumber.Text);
sqc.CommandText = query1;
sdr = sqc.ExecuteReader();
MessageBox.Show("Data Saved.", "Message",MessageBoxButtons.OK,MessageBoxIcon.Information);
我想从tbl_gradestep表中获取步骤ID,
最佳答案
内部查询返回NULL
。您应遵循like
语法以检索正确的结果(如果存在):
string query1 = "INSERT INTO tbl_emp_gs (EmployeeID,StepID) VALUES ('"+ lblEmpID.Text +"', (Select StepID from tbl_gradestep where StepID Like @grade))";
sqc.Parameters.AddWithValue("@grade", "%" + cmbStepNumber.Text + "%");
我建议使用
sqc.ExecuteNonQuery()
,除非您有充分的理由执行数据读取器。另外,不建议在SQL语句中并置字符串。
关于c# - 带有Like子句的insert和select语句的正确查询是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40690463/