新手上路,碰到一个问题,求解!
C#环境下:
1. command.CommandText = "select A from B where A1=a1 and B1=b1";
   command.ExecuteNonQuery();
   这样的执行正确,没有错误发生。
2. 当把表名和列名都作为参数,如表名tab,列名c_name,列值c_value
   command.CommandText = "select A from "+ tab +" where "+ c_name +" = "+ c_value +""
   command.ExecuteNonQuery();
   这样的执行就会出错,提示列名不正确,到底为何?

解决方案 »

  1.   

    command.CommandText = "select A from "+ tab +" where "+ c_name +" = '"+ c_value +"'"
      

  2.   

    注意c_value两边的引号! 可能这个列是字符串。
      

  3.   

    先把组合好的sql字符串show出来,看看对不对。
      

  4.   


    "select A from "+ tab +" where "+ c_name +" = "+ c_value +""
    string.Format(" select a from {0} where {1}={2} ",tab,c_name,c_value); //这样好查错一些
    //应该是楼主的字段格式不一样造成的。比如都是整型,你就直接传入,如果是字符串那c_value就会加单引号。