.net链接Oracle数据操作类库

  1   public abstract class OracleHelper
  2     {
  3         public OracleHelper() { }
  4 
  5         /// <summary>
  6         /// 数据库连接字符串
  7         /// </summary>
  8         protected static string connectionString = ConfigurationManager.AppSettings["Oracle_BPMS"];
  9
 64         #region  执行简单SQL语句
 65 
 66         /// <summary>
 67         /// 执行SQL语句,返回影响的记录数
 68         /// </summary>
 69         /// <param name="SQLString">SQL语句</param>
 70         /// <returns>影响的记录数</returns>
 71         public static int ExecuteSql(string SQLString)
 72         {
 73             using (OracleConnection connection = new OracleConnection(connectionString))
 74             {
 75                 using (OracleCommand cmd = new OracleCommand(SQLString, connection))
 76                 {
 77                     try
 78                     {
 79                         connection.Open();
 80                         int rows = cmd.ExecuteNonQuery();
 81                         return rows;
 82                     }
 83                     catch (System.Data.SqlClient.SqlException e)
 84                     {
 85                         connection.Close();
 86                         throw e;
 87                     }
 88                 }
 89             }
 90         }
 91 
 92         /// <summary>
 93         /// 2012-2-21新增重载,执行SQL语句,返回影响的记录数
 94         /// </summary>
 95         /// <param name="connection">SqlConnection对象</param>
 96         /// <param name="trans">SqlTransaction事件</param>
 97         /// <param name="SQLString">SQL语句</param>
 98         /// <returns>影响的记录数</returns>
 99         public static int ExecuteSql(OracleConnection connection, OracleTransaction trans, string SQLString)
100         {
101             using (OracleCommand cmd = new OracleCommand(SQLString, connection))
102             {
103                 try
104                 {
105                     cmd.Connection = connection;
106                     cmd.Transaction = trans;
107                     int rows = cmd.ExecuteNonQuery();
108                     return rows;
109                 }
110                 catch (System.Data.SqlClient.SqlException e)
111                 {
112                     trans.Rollback();
113                     throw e;
114                 }
115             }
116         }
117 
118         public static int ExecuteSqlByTime(string SQLString, int Times)
119         {
120             using (OracleConnection connection = new OracleConnection(connectionString))
121             {
122                 using (OracleCommand cmd = new OracleCommand(SQLString, connection))
123                 {
124                     try
125                     {
126                         connection.Open();
127                         cmd.CommandTimeout = Times;
128                         int rows = cmd.ExecuteNonQuery();
129                         return rows;
130                     }
131                     catch (System.Data.SqlClient.SqlException e)
132                     {
133                         connection.Close();
134                         throw e;
135                     }
136                 }
137             }
138         }
139 
140 
141 
142         /// <summary>
143         /// 执行查询语句,返回DataSet
144         /// </summary>
145         /// <param name="SQLString">查询语句</param>
146         /// <returns>DataSet</returns>
147         public static DataSet Query(string SQLString)
148         {
149 
150             using (OracleConnection connection = new OracleConnection(connectionString))
151             {
152                 DataSet ds = new DataSet();
153                 try
154                 {
155                     connection.Open();
156                     OracleDataAdapter command = new OracleDataAdapter(SQLString, connection);
157                     command.Fill(ds, "ds");
158                 }
159                 catch (System.Data.SqlClient.SqlException ex)
160                 {
161                     throw new Exception(ex.Message);
162                 }
163                 return ds;
164             }
165 
166         }
167 
168 
169         /// <summary>
170         /// 2012-2-21新增重载,执行查询语句,返回DataSet
171         /// </summary>
172         /// <param name="connection">SqlConnection对象</param>
173         /// <param name="trans">SqlTransaction事务</param>
174         /// <param name="SQLString">SQL语句</param>
175         /// <returns>DataSet</returns>
176         public static DataSet Query(OracleConnection connection, OracleTransaction trans, string SQLString)
177         {
178             DataSet ds = new DataSet();
179             try
180             {
181                 OracleDataAdapter command = new OracleDataAdapter(SQLString, connection);
182                 command.SelectCommand.Transaction = trans;
183                 command.Fill(ds, "ds");
184             }
185             catch (System.Data.SqlClient.SqlException ex)
186             {
187                 throw new Exception(ex.Message);
188             }
189             return ds;
190 
191         }
192 
193 
194         #endregion
195 
196         #region  其他方法
197         /// <summary>   
198         /// 执行命令,返回受影响的行数   
199         /// </summary>   
200         /// <param name="tran">事务类 </param>   
201         /// <param name="cmdText">操作字符串</param>   
202         /// <param name="parms">sql语句需要的参数</param>   
203         /// <param name="cmdtype">执行类型,是存储过程还是普通sql</param>   
204         /// <returns>返回受影响的行数</returns>   
205         public static int ExecuteNonQuery(OracleTransaction tran, string cmdText, OracleParameter[] parms, CommandType cmdtype)
206         {
207             int retVal = 0;
208             OracleCommand cmd = new OracleCommand(cmdText);
209             cmd.Connection = tran.Connection;
210             cmd.Transaction = tran;
211             cmd.CommandType = cmdtype;
212             if (parms != null)
213             {
214                 cmd.Parameters.AddRange(parms);
215             }
216             retVal = cmd.ExecuteNonQuery();
217             cmd.Parameters.Clear();
218             return retVal;
219         }
220 
221         /// <summary>   
222         /// 执行命令,返回受影响的行数   
223         /// </summary>   
224         /// <param name="cmdText">查询的文本</param>   
225         /// <param name="parms">需要的参数</param>   
226         /// <param name="cmdtype">如何解释命令字符串</param>   
227         /// <returns>返回受影响的行数</returns>   
228         public static int ExecuteNonQuery(string cmdText, OracleParameter[] parms, CommandType cmdtype)
229         {
230             int retVal;
231             using (OracleConnection conn = new OracleConnection(connectionString))
232             {
233                 OracleCommand cmd = new OracleCommand(cmdText, conn);
234                 cmd.CommandType = cmdtype;
235 
236                 if (parms != null)
237                 {
238                     //添加参数      
239                     cmd.Parameters.AddRange(parms);
240                 }
241                 conn.Open();
242                 retVal = cmd.ExecuteNonQuery();
243                 conn.Close();
244             }
245 
246             return retVal;
247         }
248 
249 
250         /// <summary>   
251         /// 执行命令, 返回受影响的行数   
252         /// </summary>   
253         /// <param name="cmdText">查询的文本</param>   
254         /// <param name="cmdtype"></param>   
255         /// <returns>返回受影响的行数</returns>   
256         public static int ExecuteNonQuery(string cmdText, CommandType cmdtype)
257         {
258             int retVal;
259 
260             using (OracleConnection conn = new OracleConnection(connectionString))
261             {
262                 OracleCommand cmd = new OracleCommand(cmdText, conn);
263                 cmd.CommandType = cmdtype;
264 
265                 conn.Open();
266 
267                 retVal = cmd.ExecuteNonQuery();
268                 conn.Close();
269             }
270 
271 
272             return retVal;
273         }
274 
275         /// <summary>   
276         /// 执行命令, 返回受影响的行数   
277         /// </summary>   
278         /// <param name="cmdText">查询的文本</param>   
279         /// <returns>返回受影响的行数</returns>   
280         public static int ExecuteNonQuery(string cmdText)
281         {
282             int retVal;
283             using (OracleConnection conn = new OracleConnection(connectionString))
284             {
285                 OracleCommand cmd = new OracleCommand(cmdText, conn);
286                 cmd.CommandType = CommandType.StoredProcedure;
287 
288                 conn.Open();
289                 retVal = cmd.ExecuteNonQuery();
290 
291                 conn.Close();
292             }
293             return retVal;
294         }
295 
296 
297         /// <summary>   
298         /// 执行命令,返回第一行第一列   
299         /// </summary>   
300         /// <param name="cmdText">查询的文本</param>   
301         /// <param name="parms">需要的参数</param>   
302         /// <param name="cmdtype">如何解释命令字符串</param>   
303         /// <returns>返回第一行第一列,不存在返回Null</returns>   
304         public static object ExecuteScalar(string cmdText, OracleParameter[] parms, CommandType cmdtype)
305         {
306             object retVal;
307 
308             using (OracleConnection conn = new OracleConnection(connectionString))
309             {
310                 OracleCommand cmd = new OracleCommand(cmdText, conn);
311                 cmd.CommandType = cmdtype;
312 
313                 if (parms != null)
314                 {
315                     //添加参数      
316                     cmd.Parameters.AddRange(parms);
317                 }
318 
319                 conn.Open();
320                 retVal = cmd.ExecuteScalar();
321                 conn.Close();
322             }
323             return retVal == DBNull.Value ? null : retVal;
324         }
325 
326 
327 
328         /// <summary>   
329         /// 执行命令,返回第一行第一列   
330         /// </summary>   
331         /// <param name="cmdText">查询的文本</param>   
332         /// <param name="parms">需要的参数</param>   
333         /// <param name="cmdtype">如何解释命令字符串</param>   
334         /// <returns>返回第一行第一列,不存在返回Null</returns>   
335         public static object ExecuteScalar(OracleTransaction tran, string cmdText, OracleParameter[] parms, CommandType cmdtype)
336         {
337 
338             object retVal;
339 
340             OracleCommand cmd = new OracleCommand(cmdText);
341             cmd.Connection = tran.Connection;
342             cmd.Transaction = tran;
343             cmd.CommandType = cmdtype;
344             if (parms != null)
345             {
346                 //添加参数      
347                 cmd.Parameters.AddRange(parms);
348             }
349 
350             retVal = cmd.ExecuteScalar();
351 
352             return retVal == DBNull.Value ? null : retVal;
353         }
354 
355 
356 
357 
358         /// <summary>   
359         /// 执行命令,返回第一行第一列   
360         /// </summary>   
361         /// <param name="cmdText">查询的文本</param>   
362         /// <param name="cmdtype">如何解释命令字符串</param>   
363         /// <returns>返回第一行第一列,不存在返回Null</returns>   
364         public static object ExecuteScalar(string cmdText, CommandType cmdtype)
365         {
366             object retVal;
367 
368             using (OracleConnection conn = new OracleConnection(connectionString))
369             {
370                 OracleCommand cmd = new OracleCommand(cmdText, conn);
371                 cmd.CommandType = cmdtype;
372 
373                 conn.Open();
374                 retVal = cmd.ExecuteScalar();
375 
376                 conn.Close();
377             }
378             return retVal == DBNull.Value ? null : retVal;
379         }
380 
381         /// <summary>   
382         /// 执行命令,返回第一行第一列   
383         /// </summary>   
384         /// <param name="cmdText">查询的文本</param>   
385         /// <returns>返回第一行第一列,不存在返回Null</returns>   
386         public static object ExecuteScalar(string cmdText)
387         {
388             object retVal;
389 
390             using (OracleConnection conn = new OracleConnection(connectionString))
391             {
392                 OracleCommand cmd = new OracleCommand(cmdText, conn);
393                 cmd.CommandType = CommandType.StoredProcedure;
394 
395                 conn.Open();
396                 retVal = cmd.ExecuteScalar();
397                 conn.Close();
398             }
399 
400             return retVal == DBNull.Value ? null : retVal;
401         }
402 
403         /// <summary>   
404         /// 执行命令,返回一个数据读取器,注意使用完毕后关闭读取器   
405         /// </summary>   
406         /// <param name="cmdText">查询的文本</param>   
407         /// <param name="parms">需要的参数</param>   
408         /// <param name="cmdtype">如何解释命令字符串</param>   
409         /// <returns>返回一个数据读取器</returns>   
410         public static OracleDataReader ExecuteReader(string cmdText, OracleParameter[] parms, CommandType cmdtype)
411         {
412             OracleDataReader reader;
413 
414             OracleConnection conn = new OracleConnection(connectionString);
415 
416             OracleCommand cmd = new OracleCommand(cmdText, conn);
417             cmd.CommandType = cmdtype;
418 
419             if (parms != null)
420             {
421                 //添加参数      
422                 cmd.Parameters.AddRange(parms);
423             }
424 
425             conn.Open();
426             reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
427             return reader;
428         }
429 
430         /// <summary>   
431         ///  执行命令,返回一个数据读取器,注意使用完毕后关闭读取器   
432         /// </summary>   
433         /// <param name="cmdText">查询的文本</param>   
434         /// <param name="cmdtype">如何解释命令字符串</param>   
435         /// <returns>返回一个数据读取器</returns>   
436         public static OracleDataReader ExecuteReader(string cmdText, CommandType cmdtype)
437         {
438             OracleDataReader reader;
439 
440             OracleConnection conn = new OracleConnection(connectionString);
441             OracleCommand cmd = new OracleCommand(cmdText, conn);
442             cmd.CommandType = cmdtype;
443 
444             conn.Open();
445             reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
446             return reader;
447         }
448         /// <summary>   
449         /// 执行命令,返回DataTable   
450         /// </summary>   
451         /// <param name="cmdText">查询的文本</param>   
452         /// <param name="parms">需要的参数</param>   
453         /// <param name="cmdtype">如何解释命令字符串</param>   
454         /// <returns>返回DataTable</returns>   
455         public static DataTable ExecuteDataTable(string cmdText, OracleParameter[] parms, CommandType cmdtype)
456         {
457             DataTable dt = new DataTable();
458 
459             using (OracleConnection conn = new OracleConnection(connectionString))
460             {
461                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
462                 apt.SelectCommand.CommandType = cmdtype;
463 
464                 if (parms != null)
465                 {
466                     apt.SelectCommand.Parameters.AddRange(parms);
467                 }
468 
469                 apt.Fill(dt);
470                 conn.Close();
471             }
472             return dt;
473         }
474 
475         /// <summary>   
476         /// 执行命令,返回DataSet   
477         /// </summary>   
478         /// <param name="cmdText">查询的文本</param>   
479         /// <param name="parms">需要的参数</param>   
480         /// <param name="cmdtype">如何解释命令字符串</param>   
481         /// <returns>返回DataSet</returns>   
482         public static DataSet ExecuteDataSet(string cmdText, OracleParameter[] parms, CommandType cmdtype)
483         {
484             DataSet ds = new DataSet();
485 
486             using (OracleConnection conn = new OracleConnection(connectionString))
487             {
488                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
489                 apt.SelectCommand.CommandType = cmdtype;
490 
491                 if (parms != null)
492                 {
493                     apt.SelectCommand.Parameters.AddRange(parms);
494                 }
495 
496                 apt.Fill(ds);
497                 conn.Close();
498             }
499             return ds;
500         }
501 
502 
503         /// <summary>   
504         /// 执行命令,返回DataTable   
505         /// </summary>   
506         /// <param name="cmdText">查询的文本</param>   
507         /// <param name="cmdtype">如何解释命令字符串</param>   
508         /// <returns>返回DataTable</returns>   
509         public static DataTable ExecuteDataTable(string cmdText, CommandType cmdtype)
510         {
511             DataTable dt = new DataTable();
512 
513             using (OracleConnection conn = new OracleConnection(connectionString))
514             {
515                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
516                 apt.SelectCommand.CommandType = cmdtype;
517                 apt.Fill(dt);
518                 conn.Close();
519             }
520             return dt;
521         }
522 
523         /// <summary>   
524         /// 执行命令,返回DataTable   
525         /// </summary>   
526         /// <param name="cmdText">查询的文本</param>   
527         /// <returns>返回DataTable</returns>   
528         public static DataTable ExecuteDataTable(string cmdText)
529         {
530             DataTable dt = new DataTable();
531 
532             using (OracleConnection conn = new OracleConnection(connectionString))
533             {
534                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
535                 apt.SelectCommand.CommandType = CommandType.StoredProcedure;
536                 apt.Fill(dt);
537                 conn.Close();
538             }
539             return dt;
540         }
541 
542         /// <summary>   
543         /// 执行命令,返回第一行,不存在返回Null   
544         /// </summary>   
545         /// <param name="cmdText">查询的文本</param>   
546         /// <param name="parms">需要的参数</param>   
547         /// <param name="cmdtype">如何解释命令字符串</param>   
548         /// <returns>返回第一行,不存在返回Null</returns>   
549         public static DataRow ExecuteFirstRow(string cmdText, OracleParameter[] parms, CommandType cmdtype)
550         {
551             DataRow row = null;
552             using (OracleConnection conn = new OracleConnection(connectionString))
553             {
554                 DataTable dt = new DataTable();
555                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
556                 apt.SelectCommand.CommandType = cmdtype;
557 
558                 if (parms != null)
559                 {
560                     apt.SelectCommand.Parameters.AddRange(parms);
561                 }
562                 apt.Fill(dt);
563                 if (dt.Rows.Count > 0)
564                 {
565                     row = dt.Rows[0];
566                 }
567                 conn.Close();
568             }
569             return row;
570         }
571 
572         /// <summary>   
573         /// 执行命令,返回第一行,不存在返回Null   
574         /// </summary>   
575         /// <param name="cmdText">查询的文本</param>   
576         /// <param name="cmdtype">如何解释命令字符串</param>   
577         /// <returns>返回第一行,不存在返回Null</returns>   
578         public static DataRow ExecuteFirstRow(string cmdText, CommandType cmdtype)
579         {
580             DataRow row = null;
581             using (OracleConnection conn = new OracleConnection(connectionString))
582             {
583                 DataTable dt = new DataTable();
584                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
585                 apt.SelectCommand.CommandType = cmdtype;
586                 apt.Fill(dt);
587                 if (dt.Rows.Count > 0)
588                 {
589                     row = dt.Rows[0];
590                 }
591                 conn.Close();
592             }
593             return row;
594         }
595 
596         /// <summary>   
597         /// 执行命令,返回第一行,不存在返回Null   
598         /// </summary>   
599         /// <param name="cmdText">查询的文本</param>   
600         /// <returns>返回第一行,不存在返回Null</returns>   
601         public static DataRow ExecuteFirstRow(string cmdText)
602         {
603             DataRow row = null;
604             using (OracleConnection conn = new OracleConnection(connectionString))
605             {
606                 DataTable dt = new DataTable();
607                 OracleDataAdapter apt = new OracleDataAdapter(cmdText, conn);
608                 apt.SelectCommand.CommandType = CommandType.StoredProcedure;
609                 apt.Fill(dt);
610                 if (dt.Rows.Count > 0)
611                 {
612                     row = dt.Rows[0];
613                 }
614                 conn.Close();
615             }
616             return row;
617         }
618 
619 
620         #endregion
621     }
原文地址:https://www.cnblogs.com/jiebo/p/5787948.html