首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • VS 2003中DataAdapter同时执行多条查询? [已结贴,结贴人:caibird1984]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 10:38:59 楼主
    记得以前可以通过DataAdapter同时执行多条查询语句,并填充到一个DataSet的不同DataTable中。不过时间有点长了记不清楚,写了这么一个程序,不过报错,有劳各位指点小弟一下
    C# code
    using System; using System.Data; using System.Data.OracleClient; …… protected System.Web.UI.WebControls.DataGrid DataGrid1; protected System.Web.UI.WebControls.DataGrid DataGrid2; …… private void BindData() { string connString = "User ID=XXXX;Password=XXXXX;Data Source=XXXX"; string Ssql = "SELECT * FROM TABLE1; SELECT * FROM TABLE2"; OracleConnection Conn = new OracleConnection(connString); OracleDataAdapter Da = new OracleDataAdapter(Ssql, Conn); DataSet Ds = new DataSet(); Da.Fill(Ds); DataGrid1.DataSource = Ds.Tables[0]; DataGrid1.DataBind(); DataGrid2.DataSource = Ds.Tables[1]; DataGrid2.DataBind(); }

    报告错误“无效字符”,只保留一条查询语句,如“SELECT * FROM TABLE1”,则可以正确查询,这是怎么回事来着
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Eddie005
    • 等级:
    发表于:2008-04-25 10:49:581楼 得分:20
    在Sql Server里,这样是可以的,但是楼主用的是OracleClient,我也不是很清楚记得是否支持,不过可以试试:
    string Ssql = "begin SELECT * FROM TABLE1; SELECT * FROM TABLE2;end;";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • suosa
    • 等级:
    发表于:2008-04-25 11:26:012楼 得分:0
    你这样写 是在一个DataTable里面
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 10:43:273楼 得分:0
    看来确实是OracleClient不支持同时进行的多条查询,一句一句执行吧,不行就用连接池来优化一下。感谢Eddie005,虽然加上BEGIN和END关键字也不行(会被认为是SELECT……INTO……语句而提示ORA错误)。另外"SELECT * FROM TABLE1; SELECT * FROM TABLE2"在SqlClient中是确实可以执行的,每个查询结果填充按顺序至一个DataTable内,看来还得是用微软的.NET加微软的DBMS才是最佳组合 - -!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved