簡體   English   中英

如何在C#中使用if條件執行SQL

[英]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記錄。

您無法在一個查詢中執行此操作,因此,如果記錄存在,請為數據庫中的查詢准備查詢,然后使用輸出(是否存在)進行UPDATEINSERT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM