【发布时间】:2010-12-09 19:00:28
【问题描述】:
就像我在尝试通过 UI 更新我的 DataGridView 时遇到的任何其他问题一样。这是我得到的错误:
SQLException 未处理。字符串或二进制数据将被截断。声明已终止。
现在这是我要更新的列列表:
ShipTrackingNumber (nvarchar(100), null)
ShipMethodTransmitted (nvarchar(50), null)
DateShipTransmitProcessed(日期时间,空)
ShipmentProcessedBy (nvarchar(50), null)
严重(nchar(1),null)
ShipTransmitStatus (nvarchar(50), null)
现在您获得了列列表及其属性。以下是更新这些列的代码:
public void SaveDataSet(DataTable table)
{
foreach (DataRow row in table.Rows)
{
SqlCommand cmd2 = new SqlCommand(
"update dbo.JobStatus SET ShipTrackingNumber = '@trackingNumber', ShipMethodTransmitted = '@TransmitMethod', DateShipTransmitProcessed = @DateProcessed, ShipmentProcessedBy = '@ProcessedBy', Critical = '@Critical', ShipTransmitStatus = '@TransmitStatus' WHERE JobTableId = @JobTableId ", _mySqlConnec);
//Updated the parameters to the SQL Query!
cmd2.Parameters.Add(new SqlParameter("@trackingNumber", row["Tracking#"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@TransmitMethod", row["TransmitMethod"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@DateProcessed", row["DateProcessed"]));
cmd2.Parameters.Add(new SqlParameter("@ProcessedBy", row["ProcesssedBy"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@Critical", row["Critical"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@TransmitStatus", row["Status"].ToString()));
cmd2.Parameters.Add(new SqlParameter("@JobTableId", row["JobID"].ToString()));
cmd2.Connection = _mySqlConnec;
_mySqlConnec.Open();
cmd2.ExecuteNonQuery();
_mySqlConnec.Close();
}
}
}
任何人都可以在这方面帮助我。谢谢!
【问题讨论】:
-
行中的内容[“关键”]?如果不止一个字符,则您的错误是正确的。
-
请更新您的代码以使用 Using 语句。就目前而言,您很可能会超载连接池并获得有趣的错误,例如无法创建与 sql server 的连接...
标签: asp.net sql sql-server