我正在向服務器發送消息並將消息上傳到數據庫中,大多數單詞都正確地通過,但我注意到當我發送單詞 「這是怎麼回事? 「它給出了一個錯誤,但是當我發送「whats up?」時T和S之間沒有單個逗號,它很好。在字符串中使用單引號時出現奇怪的SQL異常
什麼問題?
這是我得到的異常: 附加信息:'s'附近的語法錯誤。
字符串')'後面未加上引號。
我在com.Executenonquery行得到異常。
string message = bf.Deserialize(client).ToString();
SqlCommand com = new SqlCommand($"insert into messages (messagetext,sentdate) values ('{message}','{DateTime.Now}')",sc);
int success = com.ExecuteNonQuery();
if (success < 1)
{
MessageBox.Show("Something went wrong");
}
使用參數!不要直接輸入查詢字符串。您剛剛瞭解了SQL注入。只需谷歌,並瞭解更多關於它。 –
除了爲SQL注入提供保護外,還允許一些性能改進,以及更多,使用查詢中的參數,因爲@GordonLinoff建議可以幫助您很多:日期格式化,字符串內部等等,沒有問題... –