『求助』存储过程执行后有两张表,为什么while后只有第一张表显示

问题描述

解决方案

解决方案二:
遮挡的太多!应该是缺少移动记录集指针的语句
解决方案三:
你可以看看人家.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也是只能循环出一张表

时间: 2024-11-03 21:17:01

『求助』存储过程执行后有两张表,为什么while后只有第一张表显示的相关文章

源代码-『求助』poco C++在VS2013怎么配置

问题描述 『求助』poco C++在VS2013怎么配置 下载好了poco 1.6.1版本的源代码 按照网上的教程用VS命令提示符执行buildwin 120 命令. 提示如下错误: '"vsvars32.bat' 不是内部或外部命令,也不是可运行的程序 或批处理文件. Error: No Visual C++ environment found. Please run this script from a Visual Studio Command Prompt or run "%V

查询问题 急急急-查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空

问题描述 查询两个表的数据,然后第一个表的数据存在相同时,则只显示一行,其他的显示为空 如上图,第一个表的字段包含 内码.编号.客户.日期,第二个表包含出库单等字段,现在查询出来的数据,只要内码相同,则对应的内码.编号.客户.日期都显示为空,该如何写SQL语句,原SQL语句如下 select t1.内码,t1.编号,t1.客户,t1.日期,t2.出库单 from SEOrder t1 join icstockbill t2 on t1.FInterID=t2.FInterID 解决方案 dani

iOS 数据库第二。三张表不能插入数据,第一张可以,为什么

问题描述 iOS 数据库第二.三张表不能插入数据,第一张可以,为什么 (id)init { self = [super init]; if (self) { NSArray * arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); _filePath = [arr objectAtIndex:0]; _filePath = [_filePath stringByAppendin

fragmentpageradapter-『求助』关于ViewPager使用FragmentPagerAdapter

问题描述 『求助』关于ViewPager使用FragmentPagerAdapter 删除非最后一个页面原来的数据还在.比如我用它来显示天气数据,现有北京,上海,广州三个城市,删除上海后,剩下北京和广州是没错,关键是广州显示的天气数据是原来上海的天气数据,然后添加一个城市,比如说天津,天津显示的就是之前广州的天气数据(重启应用后可以正常显示)有什么办法可以解决呢 解决方案 以前用的viewpager都不是自己写的,这次自己写一下 这个是整个ViewPager的初始化函数 private void

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book

在ASP.NET中用存储过程执行SQL语句

  存储过程:是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程.by google 存储过程执行效率比单独的SQL语句效率高. 样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下. 比如,创建一个存储过程 create procedure procNewsSelectNewNews as begi

在ASP.NET中用存储过程执行SQL语句_实用技巧

存储过程执行效率比单独的SQL语句效率高. 样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下. 比如,创建一个存储过程 复制代码 代码如下: create procedure procNewsSelectNewNews as begin select top 10 n.id,n.title,n.createTime,c.name from news n inner join category c on n.caId=c.id order by n.createT

[译] 『小键盘』难题:用户在手机上填写表单吗?

本文讲的是[译] 『小键盘』难题:用户在手机上填写表单吗?, 原文地址:The Tiny Keyboard Problem: Do People Complete Forms on Their Phones? 原文作者:Priceonomics Data Studio 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:ylq167 『小键盘』难题:用户在手机上填写表单吗? 本文系根据 JotForm (一家 Priceon

『WPF』DataGrid的使用

原文 『WPF』DataGrid的使用 几点说明 这里主要是参考了MSDN中关于DataGrid的说明 这里只会简单说明在WPF中,DataGird最简单的使用方法 对于MSDN中的翻译不会很详细,也不会每一句都翻译.   来自MSDN的内容 Type Name Description Constructors DataGrid Initializes a new instance of the System.Windows.Controls.DataGrid class. Property I