当我尝试将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
答案 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以防止混淆。