string id=ds1.Tables[0].Rows[j]["id"].ToString();
   string Update="update ycsong set SingOrder="+n+" where id="+Convert.ToInt32(id)+"";
   SqlCommand cmd =new SqlCommand(Update,con);
   cmd.ExecuteNonQuery();   我说对我的同事加同学说 “Convert.ToInt32(id) ”没有必要 Convert.ToInt32转换了,因为id,Update都是字符型,
   SqlCommand(Update,con),是将字符型传的数据库执行,和存储过程不同。
   同学是他这样写了N年了,各位认为有没有必要 Convert.ToInt32转换?

解决方案 »

  1.   

    无意义。这是执行SQL语句,只要SQL本身语法正确就行。如果是在存储过程里面,是要转换的。
      

  2.   

    呵呵。。你就是争论的那位同学吗。。

    因为数据库中id是整形的。我加了转换之后,最起码不会出错其他的差错吧?!!!
    你应该用SqlParameter
      

  3.   

    这个问题有点象我在SQL中经常用到的,比如:
    select * from text where id = 1

    select * from text where id like '1'
    结果是一样的...
      

  4.   

    因为数据库中id是整形的。我加了转换之后,最起码不会出错其他的差错吧?!!!错是绝对没有错的,但是你要知道一个问题
    string a= "aaa";
    int i = 1;
    string b = a+i;
    显然b = "aaa1";
    那就是string类型+int类型其实就默认了一个i.tostring()的转化
    而你上边写的呢其实就跟这么写是一样的
    string   Update="update   ycsong   set   SingOrder="+n+"   where   id="+
    Convert.ToInt32(id).toString()+""; 
    所以说就逻辑而言,没什么意义,就习惯而言也算不上什么好习惯。
    可能你们两个都是那种比较固执的人,才会为这点小事争论哈。
      

  5.   

    to:xwspider 
    一起毕业,一起进公司。呵呵
    猿粪啊...