2017-04-13 193 views
1

我想知道是否可以在一個預準備語句中執行多個SQL查詢。 這是我要執行的第一個查詢:在c#語句中執行多個SQL查詢

MySqlCommand cmd = new MySqlCommand(
        "INSERT INTO Table VALUES (@Date,@Manager,@Joiner,@Number,@Type,@Join,@Status)", 
        conn); 
        cmd.Prepare(); 
        cmd.Parameters.AddWithValue("@Date", Date); 
        cmd.Parameters.AddWithValue("@Manager",Manager); 
        cmd.Parameters.AddWithValue("@Joiner", Joiner); 
        cmd.Parameters.AddWithValue("@Number", Number); 
        cmd.Parameters.AddWithValue("@Type", Type); 
        cmd.Parameters.AddWithValue("@Join", Join); 
        cmd.Parameters.AddWithValue("@Status", Status); 
        cmd.ExecuteReader(); 

,並在之後我需要執行 DELETE FROM Table where Date='@Date'查詢。 要做到這一點,最有效的方法是什麼?

回答

1

MySql支持批處理命令。這意味着第一個命令的文本後,您可以添加一個分號,並在通過的ExecuteNonQuery提交一個字符串第二個命令(不使用的ExecuteReader當你不需要讀什麼)

"INSERT INTO Table VALUES (@Date,@Manager,@Joiner,@Number,@Type,@Join,@Status); 
DELETE FROM Table where [email protected]" 

還請注意,我已經刪除了@Date參數的單引號。留下它們會將參數佔位符轉換爲文字字符串。這幾乎找不到要刪除的行。第二個想法是,我對這個第二個命令感到困惑,因爲它會刪除插入到第一個命令中的相同記錄。

+1

第二個命令只是一個例子,我正在運行的查詢是不同的。謝謝你的回答。 – user3586606