架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 22924|回复: 0

[资料] .net oracle多表查询方法,一个笨方法。。

[复制链接]
发表于 2016-8-16 10:56:04 | 显示全部楼层 |阅读模式
QQ截图20160816105308.jpg


可以查询出多张表,方法如下:

  1. /// <summary>
  2.         /// oracle多表查询
  3.         /// </summary>
  4.         /// <param name="dic"></param>
  5.         /// <returns></returns>
  6.         public static DataSet GetClient(Dictionary<string,OracleParameter[]> dic)
  7.         {
  8.             try
  9.             {
  10.                 DataSet dsall = new DataSet();
  11.                 using (OracleConnection conn = new OracleConnection(constr))
  12.                 {
  13.                     conn.Open();
  14.                     foreach (var _sql in dic)
  15.                     {
  16.                         DataSet ds = new DataSet();
  17.                         OracleCommand cmd = new OracleCommand(_sql.Key, conn);
  18.                         OracleDataAdapter sda = new OracleDataAdapter();
  19.                         sda.SelectCommand = cmd;
  20.                         foreach (var par in _sql.Value)
  21.                         {
  22.                             cmd.Parameters.Add(par);
  23.                         }
  24.                         sda.Fill(ds);
  25.                         ds.Tables[0].TableName = Guid.NewGuid().ToString();
  26.                         dsall.Tables.Add(ds.Tables[0].Copy());
  27.                     }
  28.                     return dsall;
  29.                 }
  30.             }
  31.             catch { return null; }
  32.         }
复制代码


执行如下:

  1. string sql1 = "select temp.* FROM (SELECT t.*,row_number() over(ORDER BY bh)AS num FROM V_YC_MYHXX t WHERE t.rqblx = :rqblx) temp WHERE NUM BETWEEN :startid AND :endid";
  2.             OracleParameter[] parameters1 = {
  3.                 new OracleParameter(":rqblx", OracleDbType.NVarchar2, 50),
  4.                 new OracleParameter(":startid", OracleDbType.Int32),
  5.                 new OracleParameter(":endid", OracleDbType.Int32)
  6.             };
  7.             parameters1[0].Value = "上海xx";
  8.             parameters1[1].Value = 1;
  9.             parameters1[2].Value = 5;

  10.             string sql2 = "select count(0) FROM V_YC_MYHXX where rqblx = :rqblx";
  11.             OracleParameter[] parameters2 = {
  12.                 new OracleParameter(":rqblx", OracleDbType.NVarchar2, 50)
  13.             };
  14.             parameters2[0].Value = "上海xx";

  15.             Dictionary<string, OracleParameter[]> dic = new Dictionary<string, OracleParameter[]>();
  16.             dic.Add(sql1, parameters1);
  17.             dic.Add(sql2, parameters2);
  18.             Tools.OracleHelper.GetClient(dic);
复制代码



通用的方法如下:

c#使用Oracle数据库执行多条查询语句,非存储过程方法
http://www.itsvse.com/thread-3042-1-1.html
(出处: 码农网)






上一篇:c#使用Oracle数据库执行多条查询语句,非存储过程方法
下一篇:webapi 无法将多个参数(sb和sb1)绑定到请求的内容
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

Mail To:help@itsvse.com

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

GMT+8, 2026-9-1 19:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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