【发布时间】:2010-12-06 00:23:23
【问题描述】:
我在将数据输入数据库的几列时遇到了一些麻烦,所有列都是 nvarchar 类型。我得到:
从一种数据类型转换为另一种数据类型时数据被截断。函数名称(如果已知)
DBConn.Open();
cmd = new SqlCeCommand("INSERT INTO [Employee Table] VALUES ('"+ social + "','" +
first + "','" + last + "','" + mid + "','" + address + "','" + phone + "',"
+ "'Employee'" + ",'" + city + "','" + state + "','" + zip + "','" + email + "','" + userName + "')", DBConn);
cmd.ExecuteNonQuery();
关于如何避免截断/转换错误的任何建议?
【问题讨论】:
-
不要这样做。使用参数化查询。请。其他一切都只是要求 SQL 注入。
-
如果你正在做一个课堂演示,SQL 注入更为重要。 请不要培训另一代开发人员连接 SQL。
-
需要更多信息才能准确了解问题所在;您能否将 CREATE 模式添加到问题中,以便我们可以查看所有 [Employee Table] 列的详细信息?
-
您使用的是哪个版本的 SQL Server?我在
sys.messages中看不到该错误,并且通常期望 Msg 8152“字符串或二进制数据将被截断”。你在用ce版吗? -
我已经开始使用参数,但我仍然无法连接到数据库。我用的是CE版,有问题吗?
标签: c# sql-server sql-server-ce