2014-05-18 106 views
-2

我试图插入到数据库的当前时间的字符串:错误:错误的数据类型为varchar转换为数字

string tm = DateTime.Now.ToString("HH:mm:ss"); 
string sql = string.Format("INSERT INTO Kabala1 (Nu_kabala,Ma_num,Date,Time,Total,Status,Name,User_n) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", n, Session["Ma_num"], now, tm, lprice, "sdfsdf", Session["user"], "sdfsdf"); 

但是当我运行上面的代码我得到的错误:错误转换数据类型varchar到数字。

我该如何解决?

+0

您需要识别表格中具有数字类型的列(即'int')并删除相应的'''''INSERT'字符。 – HuorSwords

回答

0

要插入的一个或多个列数据类型是数字,但是您要用单引号(')包装所有插入的值。这意味着插入值时,它会尝试将varchar(用单引号括起来的值)作为数字值进行投射,并且失败。

您需要确定您尝试插入的值是数字,并在插入语句中从中删除单引号。

例如:

string.Format("INSERT INTO Kabala1 (Nu_kabala,Ma_num,Date,Time,Total,Status,Name,User_n) VALUES('{0}','{1}','{2}','{3}',{4},'{5}','{6}','{7}')", n, Session["Ma_num"], now, tm, lprice, "sdfsdf", Session["user"], "sdfsdf"); 

凡{4}为数字。

相关问题