像任何其他問題,我遇到問題,每當我試圖通過UI更新我的DataGridView。這裏是我得到的錯誤:SQL錯誤:字符串或二進制數據將被截斷。該聲明已被終止
SQLException未處理。字符串或二進制數據將被截斷。該語句已終止。
現在,這裏是我試圖更新我的專欄文章:
ShipTrackingNumber(爲nvarchar(100),NULL)
ShipMethodTransmitted(爲nvarchar(50),NULL)
DateShipTransmitProcessed(datetime,null)
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();
}
}
}
任何人都可以請幫我在這方面。謝謝!
什麼行[「關鍵」]?如果它不止一個字符,那麼你的錯誤是正確的。 – 2010-12-09 19:03:40
請更新您的代碼以使用使用語句。現在,你運行超負荷連接池和獲得樂趣的錯誤,如無法創建連接到SQL服務器的真實可能性... – NotMe 2010-12-09 19:40:12