[英]what is the proper query for insert and select statement with Like clause?
我有此查詢,它給我的錯誤是無法在表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語句中並置字符串。
您應該使用插入選擇,而不要使用帶有選擇。的值。通過這種方式,僅當選擇工作且在選擇模式下在行中插入相同數量的行時,才執行插入
假設@grade是搜索模式
"INSERT INTO tbl_emp_gs (EmployeeID,StepID)
SELECT ('"+ lblEmpID.Text +"', StepID
from tbl_gradestep where StepID Like concat('%', @grade, '%'))"
string query1 = "INSERT INTO tbl_emp_gs (EmployeeID,StepID) VALUES ('"+ lblEmpID.Text +"', (Select StepID from tbl_gradestep where StepID Like '%@grade%'))";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.