错误:将数据类型varchar转换为数字时出错

时间:2014-05-18 17:20:41

标签: c# mysql asp.net sql datetime

我试图在数据库中插入当前时间的字符串:

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转换为数字时出错。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您要插入的一个或多个列数据类型是数字,但是您将所有插入的值包装在单引号(')中。这意味着当插入值时,它会尝试将varchar(用单引号括起来的值)转换为数值,然后失败。

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

例如:

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}是数字。

相关问题