【问题标题】:Error: error converting data type varchar to numeric错误:将数据类型 varchar 转换为数字时出错
【发布时间】:2014-05-18 17:20:40
【问题描述】:

我正在尝试将当前时间的字符串插入数据库:

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

我该如何解决?

【问题讨论】:

  • 您需要识别表格中数字类型的列(即int)并删除INSERT对应的''字符。

标签: c# mysql asp.net sql datetime


【解决方案1】:

您要插入的一种或多种列数据类型是数字,但是您将插入的所有值括在单引号中 (')。这意味着当插入值时,它会尝试将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} 是数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2013-04-27
    • 2014-10-08
    相关资源
    最近更新 更多