架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 23033|回复: 0

[资料] c#使用Oracle数据库执行多条查询语句,非存储过程方法

[复制链接]
发表于 2016-8-16 10:16:20 | 显示全部楼层 |阅读模式

我们在C#使用MS Sql Server数据库时执行多条SQL查询的方法:

select * from table1;

select * from table2;

这样写起来非常方便,可是在Oracle中这样写是不行的。


C#访问Oracle数据库执行多条查询语句的方法:

需添加引用:Oracle.DataAccess.Client,该DLL可以到Oracle官网下载。

建议把OraOps11w.dll和Oracle.DataAccess.dll这2个文件放到程序启动目录下,一定要保证这2个文件的版本一致。

以下是核心代码:
  1. public static DataSet Query(List<string> listSelectSql)
  2.         {
  3.             using (OracleConnection connection = new OracleConnection(connectionString))
  4.             {
  5.                 DataSet ds = new DataSet();            
  6.                 try
  7.                 {
  8.                     connection.Open();
  9.                     OracleCommand cmd = new OracleCommand();
  10.                     StringBuilder strSql = new StringBuilder();
  11.                     strSql.Append("begin ");
  12.                     for (int i = 0; i < listSelectSql.Count; i++)
  13.                     {
  14.                         string paraName = "p_cursor_" + i;
  15.                         strSql.AppendFormat("open :{0} for {1}; ", paraName, listSelectSql[i]);
  16.                         cmd.Parameters.Add(paraName, OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
  17.                     }
  18.                     strSql.Append("end;");
  19.                     cmd.Connection = connection;
  20.                     cmd.CommandText = strSql.ToString();
  21.                     OracleDataAdapter da = new OracleDataAdapter();
  22.                     da.SelectCommand = cmd;
  23.                     da.Fill(ds);
  24.                 }
  25.                 catch (OracleException ex)
  26.                 {
  27.                     throw new Exception(ex.Message);
  28.                 }
  29.                 return ds;
  30.             }
  31.         }
复制代码






上一篇:oracle利用解析函数row_number高效分页
下一篇:.net oracle多表查询方法,一个笨方法。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-8-29 14:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表