caohuan95568
2016-01-10 14:01
采纳率: 34%
浏览 1.6k

C#中写SQL语句,单双引号的区别,为什么会报标准表达式中数据类型不匹配。

                        OleDbDataAdapter WorkPieceDataDA = new OleDbDataAdapter("update" + "[" + ming + "]" + "set " + lieming[j, 0] + " = '" + jilushuzhi_left[j, i] + "' where 点数  ='" + dianshu[0, i] + "'", tempconn);//充当 DataSet 和数据源之间的桥梁,用于检索和保存数据

这里的点数为列名,在上面设置的类型为int,请问为什么会报 标准表达式中数据类型不匹配。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • kkndx 2016-01-10 15:35
    已采纳

    点数为列名,类型为int.
    where 点数 ='" + dianshu[0, i] + "'"
    这条应为
    where 点数 =" + dianshu[0, i]
    类型为数值时不要加引号。加了引号表示值的类型为字符串。

    点赞 打赏 评论
  • 海阔-舟山 2016-01-10 15:16
    var comm = new OleDbCommand(tempconn);
    

    comm.CommandText=String.Format("update [{0}] set {1}= '{3}' where 点数 ={4}",ming,lieming[j, 0],jilushuzhi_left[j, i],dianshu[0, i]);
    comm.NoQueryExcuent();
    即可,上面的语句有些只是类似,按照C#类型的提示做就可以了。另外 原字符串中 Update 和ming 之间好像没有空格。

    点赞 打赏 评论
  • devmiao 2016-01-10 16:19

    C#的字符串只能用双引号,单引号表示char类型,sql两者都可以用,但是要匹配。

    点赞 打赏 评论

相关推荐 更多相似问题