是不是select语句不能用ExecuteNonQuery()执行哦?
看来是走弯路了阿。
我本想用ExecuteNonQuery()来返回select语句所影响的行的。
请问有什么更好用一些。我想在用的是ExecuteScalar()。不知道好不好。
如果我想知道找出的行数呢??
谢谢!

解决方案 »

  1.   

    select只是取出来 受影响行数为0
      

  2.   

    select count(*) from 表int 影响的行数 = int.Parse(cmd.ExecuteScalar().ToString();
      

  3.   

    我记得有些特殊的语句用ExecuteNonQuery会返回0或者-1
      

  4.   

    我本想用ExecuteNonQuery()来返回select语句所影响的行的。--------------------
    ExecuteNonQuery()就是返回影响的行数的
      

  5.   

    select count(*) from ... 使用ExecuteScalar()返回行数
      

  6.   

    ExecuteNonQuery
    这个是无记录集返回的执行显然你的SELECT语句需要返回记录集,所以,你的思路是完全的错误.你可以用DATAREADER来执行,并返回记录集合.
      

  7.   

    select count(*) from tb
      

  8.   

    首先:1、我本想用ExecuteNonQuery()来返回select语句所影响的行的。
    select不会对db产生影响,只有Update\Delete\Insert才会,所以你的思路就是错误的。2、可以用:
    select count(*) from t where id>1
    再ExecuteScalar(),得到的值就是行数。
      

  9.   

    看来我没记错^o^
    只是不记得用select会返回0还是-1了
      

  10.   

    ExecuteNonQuery是执行行为查询操作的.
      

  11.   

    ExecuteNonQuery 执行 insert update delete NonQuery 的意思 就是 不查询!!
      

  12.   

    用ExecuteNonQuery()来返回select语句所影响的行的
      

  13.   

    楼主的意思是不是这样: 
    int num=cmd.ExecuteNonQuery();
    这样不就把Command中的sql影响的行数得到了吗?
      

  14.   

    如果用ExecuteScalar(),你的sql还要count(),如果你要进行update或insert操作的话就要两步
      

  15.   

    luliqing1982:我就是这个意思。谢谢大家我明白了。
    xrascal(横刀夺爱) 谢谢你。
    还有xiahouwen,mapserver,GXY2005..
    谢谢大家。
    ltmltm123456的说法好像和我当初的一样有一定的误解。呵呵。谢谢你。
      

  16.   

    ExecuteNonQuery()只能返回update或insert语句受影响的行数想得到select语句所影响的行就需要有select count(*) from tablename 去得到了
    最后ExecuteScalar()去执行应该没有更好的方法了
      

  17.   

    select语句是不会对db有影响的,楼主不妨试试,返回的值始终是-1
    只有Update\Delete\Insert操作的时候,ExecuteNonQuery()才能返回影响的行数
      

  18.   

    select count(*) from 
    count =(int)cmd.ExecuteScalar();这样可以得到行数