新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → [合集] 存储过程返回多个结果集如何绑定在一个DataGrid上 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5524 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [合集] 存储过程返回多个结果集如何绑定在一个DataGrid上 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 [合集] 存储过程返回多个结果集如何绑定在一个DataGrid上


    发信人: Nineteen (-_-#!), 信区: DotNET
    标  题: [合集] 存储过程返回多个结果集如何绑定在一个DataGrid上
    发信站: BBS 水木清华站 (Tue Nov  4 11:36:02 2003), 站内

    ☆─────────────────────────────────────☆
       jojo001 (笨小孩) 于  (Sun Jun  8 18:26:10 2003)  提到:

    如题。



    ☆─────────────────────────────────────☆
       jojo001 (笨小孩) 于  (Mon Jun  9 09:48:00 2003)  提到:

    大家都没有人来回么?

    我做了实验,结果如下:
    1。存储过程中执行的是select * from tablename (任意个),
       返回的dataset的tables也将是多个,通过dataset.tables[tablename]访问。
    2。存储过程中执行的是cursor, 并以fetch返回一行,(在sqlplus中执行通过)
       此时dataset.tables[0].rows.count却为0。

    这是为什么,请问通过什么得到fetch返回的行(可能是多行)呢?

    【 在 jojo001 (笨小孩) 的大作中提到: 】
    ∶如题。




    ☆─────────────────────────────────────☆
       lbx (_root.play) 于  (Mon Jun  9 09:57:56 2003)  提到:

    多个结果集的时候,dataset中的tables是用默认名称进行保存的吧
    table,table1,这时要用map来建立别名
    看看书上的例子
    string strConn, strSQL;
    strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK;" +  
              "Initial Catalog=Northwind;Trusted_Connection=Yes;";
    strSQL = "SELECT CustomerID, CompanyName, ContactName, Phone " +
             "FROM Customers WHERE CustomerID = 'ALFKI'; " +
             "SELECT OrderID, CustomerID, EmployeeID, OrderDate " +  
             "FROM Orders WHERE CustomerID = 'ALFKI'";
    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, strConn);
    da.TableMappings.Add("Table", "Customers");
    da.TableMappings.Add("Table1", "Orders");
    DataSet ds = new DataSet();
    da.Fill(ds);

    存储过程用的少,不过我觉得cursor每次fetch就是返回一行的,不知道你怎么让他
    返回很多行
    【 在 jojo001 (笨小孩) 的大作中提到: 】
    ∶大家都没有人来回么?
    ∶我做了实验,结果如下:
    ∶1。存储过程中执行的是select * from tablename (任意个),
    ∶返回的dataset的tables也将是多个,通过dataset.tables[tablename]访问。
    ∶2。存储过程中执行的是cursor, 并以fetch返回一行,(在sqlplus中执行通过)
    ∶此时dataset.tables[0].rows.count却为0。
    ∶这是为什么,请问通过什么得到fetch返回的行(可能是多行)呢?




    ☆─────────────────────────────────────☆
       lbx (_root.play) 于  (Mon Jun  9 10:03:36 2003)  提到:

    hoho,刚才看了看ms ado.net的ebook,里面有这个说明
    Oracle Stored Procedures
    Oracle stored procedures cannot return rows from a query in the way that
    SQL Server stored procedures can. Oracle stored procedures can return  
    data only through output parameters. However, the Microsoft OLE DB  
    Provider for Oracle and the Microsoft ODBC Driver for Oracle allow you to call
    Oracle stored procedures and fetch the results of a query through  
    output parameters. This feature is documented in various articles in the  
    Microsoft Knowledge Base. A query string would follow this syntax:

    {CALL PackageName.ProcName (?, {resultset 20, OutParam1,  
                                    OutParam2, ... })}


    【 在 jojo001 (笨小孩) 的大作中提到: 】
    ∶大家都没有人来回么?
    ∶我做了实验,结果如下:
    ∶1。存储过程中执行的是select * from tablename (任意个),
    ∶返回的dataset的tables也将是多个,通过dataset.tables[tablename]访问。
    ∶2。存储过程中执行的是cursor, 并以fetch返回一行,(在sqlplus中执行通过)
    ∶此时dataset.tables[0].rows.count却为0。
    ∶这是为什么,请问通过什么得到fetch返回的行(可能是多行)呢?




    ☆─────────────────────────────────────☆
       jojo001 (笨小孩) 于  (Mon Jun  9 10:46:22 2003)  提到:

    刚才没有说清楚不好意思。
    我现在用的数据库是sqlserver2000。
    游标中使用多个fetch,就可以返回多个行集啦
    (行的数目与fetch的数目相关)
    现在不知道怎么才能得到fetch返回的记录;
    或者有没有办法,比如将fetch取得的数据存入到一个临时表
    (申明该表的结构是预先不知道的,不能使用一个永久表)中,
    然后在select * from #temptable
    本人对存储过程不熟悉,试了但没有成功。
    请教大家!多谢!

    【 在 jojo001 (笨小孩) 的大作中提到: 】




    ☆─────────────────────────────────────☆
       lbx (_root.play) 于  (Mon Jun  9 11:00:29 2003)  提到:

    能说说你的要求嘛,也许可以不用cursor
    【 在 jojo001 (笨小孩) 的大作中提到: 】
    ∶刚才没有说清楚不好意思。
    ∶我现在用的数据库是sqlserver2000。
    ∶游标中使用多个fetch,就可以返回多个行集啦
    ∶(行的数目与fetch的数目相关)
    ∶现在不知道怎么才能得到fetch返回的记录;
    ∶或者有没有办法,比如将fetch取得的数据存入到一个临时表
    ∶(申明该表的结构是预先不知道的,不能使用一个永久表)中,
    ∶然后在select * from #temptable
    ∶本人对存储过程不熟悉,试了但没有成功。
    ∶请教大家!多谢!




    ☆─────────────────────────────────────☆
       jojo001 (笨小孩) 于  (Mon Jun  9 11:10:43 2003)  提到:

    好的。
    我现在做的东东是允许动态显示的,就是说select语句是可以用户输入的
    (表名,列名都不首限制,只要数据库能正确执行就行)
    然后将返回的结果(任意行)绑定到DataGrid中显示出来。

    由于数据量比较大,又必须分页处理,(还是数据量大的原因)
    我使用的是存储过程,而不是直接用select top(sqlserver2000中没有row_id),
    然后我想用fetch返回某一页下的多少行纪录(多个fetch就行了)。


    【 在 lbx (_root.play) 的大作中提到: 】
    ∶能说说你的要求嘛,也许可以不用cursor




    ☆─────────────────────────────────────☆
       lbx (_root.play) 于  (Mon Jun  9 11:30:18 2003)  提到:

    据我所知,cursor的效率是比较低的,你这么操作的我想适得其反
    【 在 jojo001 (笨小孩) 的大作中提到: 】
    ∶好的。
    ∶我现在做的东东是允许动态显示的,就是说select语句是可以用户输入的
    ∶(表名,列名都不首限制,只要数据库能正确执行就行)
    ∶然后将返回的结果(任意行)绑定到DataGrid中显示出来。
    ∶由于数据量比较大,又必须分页处理,(还是数据量大的原因)
    ∶我使用的是存储过程,而不是直接用select top(sqlserver2000中没有row_id),
    ∶然后我想用fetch返回某一页下的多少行纪录(多个fetch就行了)。




    ☆─────────────────────────────────────☆
       jojo001 (笨小孩) 于  (Mon Jun  9 11:32:12 2003)  提到:

    哦,我还没有试验比较过,你有什么好的办法么?多谢指教!
    【 在 lbx (_root.play) 的大作中提到: 】
    ∶据我所知,cursor的效率是比较低的,你这么操作的我想适得其反




    上一篇
    返回上一页
    回到目录
    回到页首
    下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:26:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/19 18:55:09

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms