问题描述
解决方案
解决方案二:
遮挡的太多!应该是缺少移动记录集指针的语句
解决方案三:
你可以看看人家.net的ExcuteReader的文档和任何介绍,你在哪里看到过支持返回两张表的,请贴出来吧。
解决方案四:
引用1楼xuzuning的回复:
遮挡的太多!应该是缺少移动记录集指针的语句
这是我写的两个方法,一个用dataset,一个用sqldatareader,都是只能返回第一张表的SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=newSqlCommand();da.SelectCommand.Connection=con;da.SelectCommand.CommandText="NET_PM_GetMenuByUserID";da.SelectCommand.CommandType=CommandType.StoredProcedure;SqlParameterparm=newSqlParameter("@dwUserID",SqlDbType.Int);parm.Value=1;da.SelectCommand.Parameters.Add(parm);DataSetds=newDataSet();da.Fill(ds);List<string>list=newList<string>();if(ds.Tables[0].Rows!=null){foreach(DataRowdrinds.Tables[0].Rows){list.Add(dr["Title"].ToString());}}//////////////////////////////SqlCommandcmd=con.CreateCommand();cmd.CommandType=CommandType.StoredProcedure;cmd.CommandText="NET_PM_GetMenuByUserID";SqlParameterparm=newSqlParameter("@dwUserID",SqlDbType.Int);parm.Value=1;cmd.Parameters.Add(parm);con.Open();SqlDataReaderda=cmd.ExecuteReader();List<string>list=newList<string>();if(da.HasRows){while(da.Read()){list.Add(da["Title"].ToString());}}da.Close();
解决方案五:
声明一下:我对C#操作数据库基本是文盲存储过程可能会返回多个结果集,这是不争的事实其他语言接收存储过程的返回时,都需要逐个读空结果集(并对每一个结果集读取记录),否则不能再用当前连接进行数据库操作C#应该也是这样的
解决方案六:
http://zhidao.baidu.com/question/362686987.html
解决方案七:
换成返回DataSet试试,如果有多个数据集的就是ds.Tables[0]和ds.Tables[1]这样
解决方案八:
引用6楼流芳百世123的回复:
换成返回DataSet试试,如果有多个数据集的就是ds.Tables[0]和ds.Tables[1]这样
ds也是只能循环出一张表