“更新语句中将截断”字符串或二进制数据“

时间:2013-04-11 23:29:02

标签: c# asp.net sql

我有以下代码:

glat += result.geometry.location.lat;
glong += result.geometry.location.lng;
gPostal += postalCode;    

sqlUpdateQuery = "update testlatlong set Lat =@lat,Long =@long where postalcode =@postal";
SqlCommand updateCommand = new SqlCommand(sqlUpdateQuery, sqlConn);
updateCommand.Parameters.Add("@lat", SqlDbType.NVarChar).Value = glat;
updateCommand.Parameters.Add("@long", SqlDbType.NVarChar).Value = glong;
updateCommand.Parameters.Add("@postal", SqlDbType.NVarChar).Value = gPostal;
updateCommand.ExecuteNonQuery();

我一直遇到这个问题:“字符串或二进制数据会被截断。语句已被终止”。我的lat和long的列类型在我的sql表中是nvarchar(max)。在我的案例中可能出现什么问题?

1 个答案:

答案 0 :(得分:2)

这将成为以下几点:

glat += result.geometry.location.lat;
glong += result.geometry.location.lng;
gPostal += postalCode;    

他们只是看错了。您发布的所有代码看起来都像是在循环中,由于+ =,邮政编码将继续增长,最终会长于列的大小。

即使lat和lng是varchar(max),它还在逐步增加列值吗?