Ошибка переполнения SqlDateTime при нажатии кнопки
Когда я запускаю приложение, приложение запускается... затем, когда я нажимаю кнопку, я получаю сообщение об ошибке
SqlDateTime переполнение. Должно быть между 01.01.1753 12:00:00 и 31.12.9999 23:59:59
Я не уверен, как это исправить, так как большинство решений в Интернете, кажется, не работают для меня. Это что-то на стороне 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);
}
}
2 ответа
Измените тип данных на datetime2 на стороне SQL (извините за этот короткий ответ, не могу комментировать)
Попробуйте вместо этого передать строковое значение, параметры определят правильный пример типа данных qlcmdins.Parameters.Add("@duedate", row.Cells[3].Value.ToString())