[英]how to execute SQL with if condition in c#
如何在C#中使用if條件執行SQL?
這是我的查詢,執行了該查詢后,出現一條錯誤消息,提示“無效的SQL語句;預期的'DELETE','INSERT','PROCEDURE','SELECT'或'UPDATE'。” 我正在使用MS ACCESS作為后端
mycon.ConnectionString = ConnString;
mycon.Open();
string mySelectQuery = "IF (EXISTS (SELECT * FROM Employee AS t1 WHERE t1.ssn ='"+textBox4.Text+"' "+
"))begin UPDATE Employee SET "+
"fname ='"+textBox1.Text+"' ,"+
"minit ='"+textBox2.Text+"' ," +
"lname ='" + textBox3.Text+"', " +
"ssn ='" +textBox4.Text+"', " +
"bdate ='" +textBox5.Text+"', " +
"address ='" +textBox6.Text+"', " +
"sex ='" +textBox7.Text+ "', " +
"salary ='" +textBox8.Text+"', " +
"superssn ='" +textBox9.Text+"', " +
"dno ='" +comboBox2.Text+"'" +
" WHERE ssn = '"+textBox4.Text+"' "+
"end "+
"else "+
" begin "+
" INSERT INTO employee values ('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"','"+textBox8.Text+"','"+textBox9.Text+"','"+comboBox2.Text+"')"+
" end";
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, mycon);
int Success= myCommand.ExecuteNonQuery();
MS Access不支持IF
語句。 else
begin
。 您必須在C#代碼中執行此操作,例如執行"SELECT * FROM Employee AS t1 WHERE t1.ssn ='"+textBox4.Text + "'";
如果有結果,請先查詢,然后再執行下一個。
另外,您應該使用參數化查詢或對文本框的值進行轉義。
好像您要發生的事情是如果數據庫中Exists
記錄,則UPDATE
記錄,否則INSERT
記錄。
您無法在一個查詢中執行此操作,因此,如果記錄存在,請為數據庫中的查詢准備查詢,然后使用輸出(是否存在)進行UPDATE
或INSERT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.