c# - 节省 SQL 数据库的时间

标签 c# sql .net sql-server database

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

最佳答案

您传递的 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/

相关文章:

c#/asp.net 显示数据库中的二进制数据

c# - 将日期单元格从 Excel 导入到 ASP SQL DB 时包含时间

c# - 来自类之间递归依赖的 System.StackOverflow 异常

php - 动态/递归 SQL 排序方式

c# - SerialPort.GetPortNames 多次返回同一个端口

c# - 如何使用 Html Agility Pack 使请求超时

.net - ASP.NET Identity 和 Thinktecture.IdentityModel 库如何相互关联?

c# - EF——无法确定类型之间关联的主体端

MySQL 首选项 Pane 和登录错误

php - 在复杂 MySQL 查询中使用变量