簡體   English   中英

如何在c#visual studio中創建UPDATE語句並進行訪問

[英]How to make an UPDATE statement in c# visual studio and access

我試過以下代碼:

OleDbConnection My_Connection = new OleDbConnection("Provider=Microsoft.Jet...
My_Connection.Open();
string sql = " UPDATE Rooms SET [Room Status] = 'Taken', [Available] = 'No' WHERE [RoomNumber] = " + textBox5.Text;
OleDbCommand My_Command = new OleDbCommand(sql, My_Connection);
My_Command.ExecuteNonQuery();
My_Connection.Close();

並且錯誤是:條件表達式中的數據類型不匹配

如上面的注釋所示,“ Available字段為“是”/“否”,因此您無法在其中存儲'No'等字符串。

那么,解決方案是使用值-1表示“是”, 0表示“否”。 沒有引號。

注意:建議不要在注釋中使用更改數據庫本身的列類型的變通方法。

另一件事是通過使用變量的參數而不是直接使用用戶輸入來避免SQL注入的可能性。 所以最終的代碼變成了類似的東西

OleDbConnection My_Connection = new OleDbConnection("Provider=Microsoft.Jet...
My_Connection.Open();
string sql = " UPDATE Rooms SET [Room Status] = 'Taken', [Available] = 0"+
             " WHERE [RoomNumber] = ?";
OleDbCommand My_Command = new OleDbCommand(sql, My_Connection);
My_Command.Parameters.AddWithValue("RoomNumber",  Convert.ToInt32(textBox5.Text));
My_Command.ExecuteNonQuery();
My_Connection.Close();

更安全!

暫無
暫無

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

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