【发布时间】:2014-08-08 11:08:51
【问题描述】:
我目前正在用 ASP.NET 开发一个网站。用户可以从其中一个页面向其他用户及其经理发送消息。我正在尝试将消息存储在我为测试目的而创建的数据库中。我在 C# 中使用以下字符串存储到数据库中。但是,没有一个值被存储。
string sql = "INSERT INTO Messages (Id, UserName, Message2, Sentdate)" + " VALUES(" + User.Identity.GetUserId() + User.Identity.Name + txtMessage.Text + DateTime.Now.ToString() +");"
我对 C# 的了解并不是最丰富的,所以如果我犯了一个明显的错误,请原谅我。
如果有人能告诉我哪里出错了,那就太好了,感谢您的帮助。
【问题讨论】:
-
你只展示了一个字符串声明——顺便说一句,它容易受到 SQL 注入攻击。您应该向我们展示试图实际执行 SQL...并了解参数化SQL 的代码。
-
您正在执行查询吗?建立与数据库的连接?向我们展示您用于将数据存储在数据库中的代码。我们需要的不仅仅是查询。
-
您没有生成有效的 SQL 语句,因为您尝试插入的值不是逗号分隔的,并且您在字符串和日期值周围缺少引号。那是为了创建语句。那么看来你没有执行它。
-
^^^^ ...这也很容易通过使用参数化查询来避免。