0

我正在构建一个 Web 应用程序,我希望允许用户将记录插入数据库。我遇到的方法是从文本框中获取信息并运行以下代码:

SqlDataSource1.InsertParameters["ProductCode"].DefaultValue = txtProductCode.Text;
SqlDataSource1.InsertParameters["Name"].DefaultValue = txtName.Text;
SqlDataSource1.InsertParameters["Version"].DefaultValue = txtVersion.Text;
SqlDataSource1.InsertParameters["ReleaseDate"].DefaultValue = txtReleaseDate.Text;
try
{
    SQLDataSource1.Insert();
}
...

如果我尝试注入一些 SQL,我会收到错误消息:

消息:字符串或二进制数据将被截断。该语句已终止。

此方法是否清理参数?我很难找到这些信息,因为我不确定是否还有办法解决这个错误。如果没有,我应该如何对输入进行消毒?

此外,ReleaseDate 参数当前似乎读取为 dd/MM/yyyy,但有办法锁定它,以便不同系统上的相同代码不会表现不同。我担心如果代码在具有不同区域设置的系统上运行,它将使用不同的格式。

4

1 回答 1

0

表中的一个字段不够长,无法插入该值。您需要检查每个 ProductionCode、name、Version 和 ReleaseDate 的长度并相应地增加它们。

http://msdn.microsoft.com/en-us/library/aa196741(v=sql.80).aspx

于 2013-01-26T02:53:31.667 回答