将日期时间从C#插入SQL Server数据库

时间:2013-05-18 17:18:59

标签: asp.net sql sql-server datetime

当我尝试将datetime值插入SQL Server数据库时,我收到此错误:

  

从字符串

转换日期和/或时间时转换失败

代码:

connection.Open();
SqlCommand command = new SqlCommand("insert into table values(@time)", connection);
command.Parameters.AddWithValue("@time", DateTime.Now);
command.ExecuteNonQuery();
connection.Close();

table有一个名为datetime的{​​{1}}列。

编辑:
我的表在msSQL 2012中创建:http://i.imgur.com/TJ3t3y7.png
我的真实代码是:

time

3 个答案:

答案 0 :(得分:2)

看起来你需要:

 insert into table values(@time)

没有单字符引用。

答案 1 :(得分:2)

这里的实际问题是你在参数中写入参数:

... ,'0','@cas',' ...
         ^    ^

这不会使用@cas作为参数,您实际上是在尝试将字符串“@cas”插入该列,而不是参数@cas的内容。

删除引号,该部分应该有效。

此外,不要使用字符串连接来构建SQL,使用所有参数,从SQL注入攻击或引用或诸如此类的东西中解决一些问题。这与您正在使用的“id”,“uzivatel”,“nazev”和“dotav”参数有关(方法参数)。

答案 2 :(得分:0)

尝试System.Data.SqlTypes.SqlDateTime此外,在存储日期时,请考虑将其存储为UTC以防止混淆。