【问题标题】:save time into SQL Database节省时间到 SQL 数据库
【发布时间】:2014-02-26 09:51:09
【问题描述】:

我有一个具有以下结构的 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 日期/时间格式,但我收到错误:

【问题讨论】:

  • 为什么要拆分日期和时间?
  • 我必须单独检查它们@Alexander

标签: c# sql .net sql-server database


【解决方案1】:

您传递的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);
}

在这种情况下,我们仅在转换成功时才添加参数。

【讨论】:

  • 谢谢!工作完美......我现在将它分成 To 和 From 的日期/时间,并将它完美地写入我的数据库...... :) 你有一个代码示例来检查日期,所以它不能在过去?
  • @Karl-Heinz - 很高兴为您提供帮助。这是一个新问题,您应该发布另一个关于此的问题。
  • 我会尝试解决这个问题,如果我有一些问题,我会创建一个新问题 :) 谢谢 ^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多