我有一个具有以下结构的 SQL 数据库:
我有 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
保存到我的数据库中以便稍后使用。
我尝试更改结构并尝试一些 SQL 日期/时间格式,但收到错误:
最佳答案
您传递的 DATE
参数的格式不正确。您需要将它们作为有效的 DateTime
传递,而您的 MaskedTextBox 值似乎不是这样。
例如,@DateFrom
是一种 SQL 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);
}
在这种情况下,我们仅在转换成功时添加参数。
关于c# - 节省 SQL 数据库的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037620/