Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何存储';日期';在SQLServer2005中使用C#查询_C#_Asp.net_Sql Server 2005 - Fatal编程技术网

如何存储';日期';在SQLServer2005中使用C#查询

如何存储';日期';在SQLServer2005中使用C#查询,c#,asp.net,sql-server-2005,C#,Asp.net,Sql Server 2005,使用C在DB(SQL server 2005)中存储日期时出错# 我在用 DateTime mydate = DateTime.Now; insert into mytablename (appdate) values('"+mydate.ToShortDateString()+"'); 当我运行查询时显示错误 也试过, C#中的mydate.ToSortDateString().ToString(“dd-MMM-yyyy-HH:mm:ss”),仍仅在编辑器中显示错误 如何使用C#query

使用C在DB(SQL server 2005)中存储日期时出错# 我在用

DateTime mydate = DateTime.Now;

insert into mytablename (appdate) values('"+mydate.ToShortDateString()+"');
当我运行查询时显示错误

也试过,

C#中的mydate.ToSortDateString().ToString(“dd-MMM-yyyy-HH:mm:ss”),仍仅在编辑器中显示错误


如何使用C#query在SQL Server 2005中存储“date”

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

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

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

使用参数化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。这避免了数据和数据转换问题,并保持代码更干净


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

使用!不要简单地连接SQL语句和值!你犯了什么错误?此外,您应该考虑使用准材料查询。您弄错了,在查询中写入日期文字的方法与字符串的语法相同,因此只要日期格式符合数据库的要求,就可以正常工作。谢谢大家的回复,但是当我使用SQL Server 2008而不是SQL Server时,我的查询可以正常工作2005@Guffa,键是“数据库期望的内容”,参数可以避免这种情况。对吗?这可能就是新数据库失败的原因。@Steve:你没有抓住重点。它不起作用的原因不是它是字符串的形式,而是字符串中日期的格式。