从字符串转换日期和/或时间时转换失败

use*_*916 3 c# sql-server-2008

将数据添加到数据库时,date_to和date_from中出现错误.在sql server数据库中,date_to和date_from的数据类型是date.建议一些解决方案

try
{
   cmd = new SqlCommand("insert into license1 values(@l_id,@customer_id,@d_id,@device_name,@from,@to)", cn);

   cmd.Parameters.AddWithValue("@l_id", license_id.Text);
   cmd.Parameters.AddWithValue("@customer_id", c_comboBox4.Text);
   cmd.Parameters.AddWithValue("@d_id", d_id_comboBox4.Text);
   cmd.Parameters.AddWithValue("@device_name", d_name_comboBox5.Text);
   cmd.Parameters.AddWithValue("@to", date_to.Text);
   cmd.Parameters.AddWithValue("@from", date_from.Text);

   cn.Open();
   a = cmd.ExecuteNonQuery();
   if (a > 0)
   {
      MessageBox.Show("Data Submitted");
   }

 }
 catch (Exception ex)
 {
      MessageBox.Show(ex.Message);
 }
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 8

转换到自己手中:

cmd.Parameters.AddWithValue("@to", DateTime.Parse( date_to.Text));
cmd.Parameters.AddWithValue("@from", DateTime.Parse( date_from.Text));
Run Code Online (Sandbox Code Playgroud)

当仍然失败时,使用DateTime.ParseExact()具有适当格式和CultureInfo的版本.

您可能需要考虑添加更强大和更广泛的验证层.日期和数字对输入错误,用户设置和用户假设非常敏感.

总是假设TextBox.Text充满了错误.