当我执行应用程序时,应用程序运行...然后当我单击按钮时我收到错误
SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间
我不知道如何解决这个问题,因为互联网上的大多数解决方案似乎都不适用于我。这是SQL方面的东西吗?
private void button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcn1 = new SqlConnection("My Connection String");
sqlcn1.Open();
//Stored Procedure
SqlCommand sqlcmddel = new SqlCommand("My_Stored_Procedure", sqlcn1);
sqlcmddel.CommandType = CommandType.StoredProcedure;
sqlcmddel.ExecuteNonQuery();
sqlcn1 = new SqlConnection("My Connection String");
sqlcn1.Open();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
SqlCommand sqlcmdins = new SqlCommand("My_Stored_Procedure", sqlcn1);
sqlcmdins.CommandType = CommandType.StoredProcedure;
//Stored Procedure
sqlcmdins.Parameters.Add("@sugnum", SqlDbType.Int).Value = Convert.ToInt64 (row.Cells[0].Value);
sqlcmdins.Parameters.Add("@sugtype", SqlDbType.NVarChar, 50).Value = Convert.ToString(row.Cells[1].Value);
sqlcmdins.Parameters.Add("@buyerid", SqlDbType.NVarChar, 50).Value = Convert.ToString (row.Cells[2].Value);
sqlcmdins.Parameters.Add("@duedate", SqlDbType.DateTime).Value = Convert.ToDateTime (row.Cells[3].Value);
sqlcmdins.Parameters.Add("@xrelqty", SqlDbType.Float).Value = Convert.ToDouble (row.Cells[4].Value);
sqlcmdins.Parameters.Add("@purchasingfactor", SqlDbType.Float).Value = Convert.ToDouble (row.Cells[5].Value);
}
}
答案 0 :(得分:0)
在SQL端将数据类型更改为datetime2(对不起那个简短的答案,不能发表评论)
答案 1 :(得分:0)
尝试传递字符串值,参数将找出正确的数据类型示例qlcmdins.Parameters.Add("@duedate", row.Cells[3].Value.ToString())