节省进入SQL数据库的时间

时间:2014-02-26 09:51:09

标签: c# sql .net database datetime

我有一个具有以下结构的SQL数据库: Databank Structure:

我有4个MaskedTextBox

       (Structure)
       DateFrom: 0000.00.00
       DateFromTime: 00:00:00
       DateTo: 0000.00.00
       DateToTime: 00:00:00

SqlCommand cmd = new SqlCommand("INSERT INTO TABELLE2 (MessageHeadline, MessageText,  SpecifyUser, CreateDate, CreateTime, CreateUser, DateFrom, DateFromTime, DateTo, DateToTime) VALUES (@MessageHeadline, @MessageText, @SpecifyUser, @CreateDate, @CreateTime, @CreateUser, @DateFrom, @DateFromTime, @DateTo, @DateToTime)");
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = connection;
                    cmd.Parameters.AddWithValue("@MessageHeadline", TB_MSGHeadline.Text);
                    cmd.Parameters.AddWithValue("@MessageText", TB_MSGText.Text);
                    cmd.Parameters.AddWithValue("@SpecifyUser", TB_SpecifyUser.Text);
                    cmd.Parameters.AddWithValue("@CreateDate", CreateDate );
                    cmd.Parameters.AddWithValue("@CreateTime", CreateTime);
                    cmd.Parameters.AddWithValue("@CreateUser", CreateUser);
                    cmd.Parameters.AddWithValue("@DateFrom", MTB_DateFrom.Text);
                    cmd.Parameters.AddWithValue("@DateFromTime", MTB_DateFromTime.Text);
                    cmd.Parameters.AddWithValue("@DateTo", MTB_DateTo.Text);
                    cmd.Parameters.AddWithValue("@DateToTime", MTB_DateToTime.Text);
                    connection.Open();

                    cmd.ExecuteNonQuery();

                    TB_MSGHeadline.Clear();
                    TB_MSGText.Clear();
                    TB_SpecifyUser.Clear();

最后我想将MasketTextBox中的这些值保存到我的数据库中,以便以后使用它们。

enter image description here

我尝试更改结构并尝试一些SQL日期/时间形成但我收到错误:

1 个答案:

答案 0 :(得分:2)

您传递的DATE参数格式不正确。您需要将它们作为有效DateTime传递,而您的MaskedTextBox值似乎不是。

例如,@DateFromSQL Date数据类型。您应该传递一个有效的参数,例如DateTime

cmd.Parameters.AddWithValue("@DateFrom", DateTime.Now);

您可能需要使用DateTime.TryParse

解析MaskedTextBox值
DateTime parsedDate;
bool success = DateTime.TryParse(MaskedInputOne.Text, out parsedDate);

if (success) {
   cmd.Parameters.AddWithValue("@DateFrom", parsedDate);
}

在这种情况下,如果转换成功,我们只添加参数。