【问题标题】:Add date to Database with different date system settings使用不同的日期系统设置将日期添加到数据库
【发布时间】:2015-07-09 11:55:42
【问题描述】:

我想将日期选择器中的日期保存到 sqlserver。

但是当在电脑上使用不同的日期格式时,日期会改变日期和月份。

例如:

我的系统上的短日期格式:dd-MMM-yyyy

日期选择器:2015 年 7 月 1 日

当我将日期保存到我的数据库时,将保存为 01-07-2015。

但是当我改变我的系统日期格式时,日期和月份都会改变

我系统上的短日期格式:dd-MM-yyyy

日期选择器:2015 年 7 月 1 日

当我将日期保存到我的数据库时,将保存为 07-01-2015。

代码:

//Set dateTimePicker to DateTime variable
DateTime dateSales = dateTimePicker1.Value;
 
// Create SQL connection
System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection(Connection.connectionString());
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;

//Create query with values and execute query
cmd.CommandText = "Insert into CarsSellout (CustomerID, dateSales) VALUES ('" + CustomerID + "', '" + dateSales + ")";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();

我知道没有参数化的 SQL 查询!

我该如何解决这个问题?到目前为止,以编程方式更改格式没有运气..!

请帮帮我!!

【问题讨论】:

  • 如果在 SQL 和 C# 中参数化并使用 datedatetime 类型,则会自动正确处理此问题

标签: c# sql-server date datetime datepicker


【解决方案1】:

你有一个bad habit as choosing the wrong data type

如果您将 DateTime 值保存到 SQL Server,请将它们保存为 DateTime。请将它们与其字符串表示形式一起保存。

这就是为什么,将您的dateSales 列类型更改为datetimedatetime2 并将您的dateSales直接 传递给您的parameterized query

DateTime dateSales = dateTimePicker1.Value;

using(var con = new SqlConnection(Connection.connectionString()))
using(var cmd = con.CreateCommand())
{
    cmd.CommandText = "Insert into CarsSellout(CustomerID, dateSales) VALUES(@id, @date)";
    cmd.Parameters.Add("@id", SqlDbType.Int).Value = CustomerID;
    cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = dateSales;

    con.Open();
    cmd.ExecuteNonQuery();
}

我强烈怀疑您的CustomerID 应该是数字类型(基于它的名称),这就是为什么在我的示例中将其参数写为SqlDbType.Int。如果不是(不是因为你使用了单引号),请将其参数更改为相关的SqlDbType

【讨论】:

  • 感谢解释代码!我的 dateSales 数据类型是“日期”。
  • @JP..t 这意味着您的dateSales 列类型保存您的dateSales 变量的日期部分。
猜你喜欢
  • 2014-04-03
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多