小弟在sqlservr中写了一个存储过程,
create procedure gettitlecount @count_cursor cursor varying output 
as 
set @count_cursor = cursor 
for 
select au_id,count(*) 
from titleauthors 
group by au_id 
open @count_cursor 
但不知道怎样在c#中得到这个返回的结果集,谢谢大家帮忙解决下。

解决方案 »

  1.   

    create procedure gettitlecount 
    as
    select au_id,count(*) 
    from titleauthors 
    group by au_idSqlCommand cmd
    sqlDataAdapter adatper = new sqlDataAdapter(cmd)
    Datatable table = new DataTable()
    adapter.fill(table)table里面就是你要的结果了
      

  2.   


    create procedure gettitlecount 
    as 
    select au_id,count(*) 
    from titleauthors 
    group by au_id 
    SqlCommand cmd 
    sqlDataAdapter adatper = new sqlDataAdapter(cmd) 
    Datatable table = new DataTable() 
    adapter.fill(table) --------
    正解。
      

  3.   

    添加引用 using System.Data;
            using System.Data.SqlClient;sqlDataAdapter dA=new  sqlDataAdapter();
    DataSet ds=new DataSet();
    sqlConnection sqlConn=new  sqlConnection("你的连接数据库的语句");
    sqlCommand sqlCom=new sqlCommand("gettitlecount ",sqlConn);
    sqlCom.CommandType=CommandType.StoredProcedure;
    SqlParameter pa=new SqlParameter("参数名",“参数值”);
    sqlCom.Parameters.add(pa);
    dA.SelectCommand=sqlCom;
    dA.fill(ds);
    ds就是取得的结果了,
    你的存储过程好像可以不用Cursor吧!实际上,你的存储过程可以不用写输入参数的,也许你考虑了其他的东西吧!
      

  4.   

    你在存储过程里面最后用select 系统自动会返回一个记录集;然后sqlDataAdapter fill dataset 就可以了