2016-02-01 51 views
0

我嘗試了幾件事情,但仍然顯示。 這裏是我的代碼:字符串或二進制數據將被截斷。該聲明已被終止日期格式的縮寫?

 string conString = @"Data Source=DESKTOP-PC;Initial Catalog=EmployeeData;Integrated Security=True"; 
     SqlConnection con = new SqlConnection(conString); 
     { 
      string hday = textBox5.Text; 
      DateTime hday2 = Convert.ToDateTime(hday,System.Globalization.CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat); 


      SqlCommand Query = new SqlCommand("Update EmpTab SET FirstName = @fn, LastName = @ln, HireDate = @hday, Gender = @g, YWC = @months, Status = @stat WHERE EmployeeID = @EID", con); 
      Query.Parameters.AddWithValue("@EID", comboBox1.Text); 
      Query.Parameters.AddWithValue("@fn", textBox2.Text); 
      Query.Parameters.AddWithValue("@ln", textBox3.Text); 

      Query.Parameters.AddWithValue("@hday",hday2); 
      Query.Parameters.AddWithValue("@g", textBox6.Text); 
      Query.Parameters.AddWithValue("@months", textBox7.Text); 
      Query.Parameters.AddWithValue("@stat", textBox8.Text); 
      con.Open(); 
      Query.ExecuteNonQuery(); 
      con.Close(); 
      MessageBox.Show("You have successfully saved the data"); 
     } 
+0

「HireDate」列的類型是什麼,「hday2」的值是什麼? –

+2

如果'HireDate'是'datetime'或'datetime2',那麼通過傳遞參數'DateTime'來做正確的事情。不會涉及字符串格式,因此我會開始查看* other *列/參數。但是也請閱讀[我們可以停止使用AddWithValue()了嗎?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) –

+0

你能否確認來自其他文本框的字符串絕對不會超過數據庫中相應的列長度?通常這是錯誤的意思。 – Balah

回答

1

的問題是,在你的數據庫,你有varchar/nvarchar領域具有符號的限制,你正試圖把大串在這個領域。另外,如果問題發生在應該是日期的字段中,則應該使用datetime db字段類型而不是nvarchar/varchar,並提供DateTime字段作爲SqlCommand參數。

相關問題