如何存储'日期'在SQL Server 2005中使用c#查询

本文关键字:2005 Server 查询 SQL 日期 何存储 存储 | 更新日期: 2023-09-27 18:13:11

使用c#在数据库(SQL server 2005)中存储日期时出现错误我用的是

DateTime mydate = DateTime.Now;
insert into mytablename (appdate) values('"+mydate.ToShortDateString()+"');

但是当我运行查询

时显示错误

也试过了,

mydate.ToShortDateString().ToString("dd-MMM-yyyy HH:mm:ss")在c#中,仍然显示错误的编辑器。

如何使用c#查询在SQL Server 2005中存储'date'

如何存储'日期'在SQL Server 2005中使用c#查询

使用参数化SQL,并将值设置为参数:

string sql = "insert into tablename (appdate) values (@appdate)";
using (var connection = new SqlConnection(...))
{
    connection.Open();
    using (var command = new SqlCommand(sql, connection))
    {
        command.Parameters.Add("@appdate", SqlDbType.DateTime).Value
            = DateTime.Now;
        int rowsInserted = command.ExecuteNonQuery();
        // TODO: Validation of result (you'd expect it to be 1)
    }
}

当有数据要包含在对数据库的请求中时,应该始终使用参数化SQL。这避免了SQL注入攻击和数据转换问题,并保持代码更干净。

您还应该考虑是否真的希望它是本地日期/时间还是UTC日期/时间。例如,您可能希望使用DateTime.UtcNow

您的查询试图在DateTime字段中插入字符串。当然这行不通。
正确的插入方式是通过如下的参数化查询

string insertSQL = "insert into mytablename (appdate) values(@dt)";
SqlCommand cmd = new SqlCommand(insertSQL, con);
cmd.Parameters.AddWithValue("@dt", mydate);
cmd.ExecuteNonQuery();

这里我假设连接已经初始化并打开了