我正在向服务器发送消息并将消息上传到数据库中,大多数单词都正确地通过,但我注意到当我发送单词 “这是怎么回事? “它给出了一个错误,但是当我发送“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建议可以帮助您很多:日期格式化,字符串内部等等,没有问题... –