![](/img/trans.png)
[英]How do I make an if statement goto a point when a certain input is entered? Microsoft Visual Studio C#
[英]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.