我有以下代码:
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)
。在我的案例中可能出现什么问题?
答案 0 :(得分:2)
这将成为以下几点:
glat += result.geometry.location.lat;
glong += result.geometry.location.lng;
gPostal += postalCode;
他们只是看错了。您发布的所有代码看起来都像是在循环中,由于+ =,邮政编码将继续增长,最终会长于列的大小。
即使lat和lng是varchar(max),它还在逐步增加列值吗?