我们在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个文件的版本一致。
以下是核心代码:
- public static DataSet Query(List<string> listSelectSql)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- DataSet ds = new DataSet();
- try
- {
- connection.Open();
- OracleCommand cmd = new OracleCommand();
- StringBuilder strSql = new StringBuilder();
- strSql.Append("begin ");
- for (int i = 0; i < listSelectSql.Count; i++)
- {
- string paraName = "p_cursor_" + i;
- strSql.AppendFormat("open :{0} for {1}; ", paraName, listSelectSql[i]);
- cmd.Parameters.Add(paraName, OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
- }
- strSql.Append("end;");
- cmd.Connection = connection;
- cmd.CommandText = strSql.ToString();
- OracleDataAdapter da = new OracleDataAdapter();
- da.SelectCommand = cmd;
- da.Fill(ds);
- }
- catch (OracleException ex)
- {
- throw new Exception(ex.Message);
- }
- return ds;
- }
- }
复制代码
|