C# 数据库的基本操作(Oracle)

Linux大全评论977 views阅读模式

配置文件如下:

  1. <appSettings>  
  2.         <add key="ServiceName" value="lev2" />  
  3.         <add key="UserID" value="DBNAME" />  
  4.         <add key="UserPsw" value="DBPASSWORD" />  
  5. </appSettings>  

基本操作类如下:

  1. using System;  
  2. using System.Data;  
  3. using System.Data.OracleClient;  
  4. using System.Configuration;  
  5. using System.Collections;  
  6. using System.Text;  
  7. namespace Common  
  8. {  
  9.     /// <summary>   
  10.     /// CommonClass 的摘要说明   
  11.     /// </summary>   
  12.     public class OracleServerDAL  
  13.     {  
  14.         OracleConnection connect = null;  
  15.         OracleCommand command = null;  
  16.         OracleDataReader reader = null;  
  17.         OracleDataAdapter adapter = null;  
  18.         DataSet ds = null;  
  19.   
  20.         public OracleServerDAL()  
  21.         {  
  22.             //   
  23.             // TODO: 在此处添加构造函数逻辑   
  24.             //   
  25.         }  
  26.   
  27.         public string GetConnStr()  
  28.         {  
  29.             string[] configStrings = ConfigHelper.ReadDBConfig();  
  30.   
  31.             string serviceName = "";  
  32.   
  33.             string userID = "";  
  34.   
  35.             string userPSW = "";  
  36.   
  37.             if (configStrings[0] == null || configStrings[1] == null || configStrings[2] == null)  
  38.             {  
  39.                 return "";  
  40.             }  
  41.   
  42.             serviceName = ConfigHelper.GetAppConfig("ServiceName");  
  43.   
  44.             userID = configStrings[1];  
  45.   
  46.             userPSW = configStrings[2];  
  47.   
  48.             string constr = string.Format("DATA SOURCE={0};user={1};password={2};", serviceName, userID, userPSW);  
  49.   
  50.             return constr;  
  51.         }  
  52.   
  53.         /// <summary>   
  54.         /// 建立与数据库的连接   
  55.         /// </summary>   
  56.         public void connectionData()  
  57.         {  
  58.             try  
  59.             {  
  60.                 if (connect == null)  
  61.                 {  
  62.                     string constr = GetConnStr();  
  63.                     if (string.IsNullOrEmpty(constr))  
  64.                     {  
  65.                         connect = new OracleConnection(DefineConst.constr);  
  66.                     }  
  67.                     else  
  68.                     {  
  69.                         connect = new OracleConnection(constr);  
  70.                     }  
  71.                 }  
  72.   
  73.                 if (connect.State == ConnectionState.Closed)  
  74.                 {  
  75.                     connect.Open();  
  76.                 }  
  77.             }  
  78.             catch (Exception e)  
  79.             {  
  80.                 Console.Write(e.Message);  
  81.             }  
  82.               
  83.         }  
  84.   
  85.     /// <summary>   
  86.     /// 获取数据库连接   
  87.     /// </summary>   
  88.     /// <returns></returns>   
  89.     public static OracleConnection GetConnection()  
  90.     {  
  91.         return new OracleConnection(DefineConst.constr);  
  92.     }  
  93.   
  94.         /// <summary>   
  95.         /// 获取数据库连接字符串   
  96.         /// </summary>   
  97.         /// <returns></returns>   
  98.         public static string GetConnectionStr()  
  99.         {  
  100.             string[] configStrings = ConfigHelper.ReadDBConfig();  
  101.   
  102.             string serviceName = "";  
  103.   
  104.             string userID = "";  
  105.   
  106.             string userPSW = "";  
  107.   
  108.             if (configStrings[0] == null || configStrings[1] == null || configStrings[2] == null)  
  109.             {  
  110.                 return "";  
  111.             }  
  112.   
  113.             serviceName = ConfigHelper.GetAppConfig("ServiceName");  
  114.   
  115.             userID = configStrings[1];  
  116.   
  117.             userPSW = configStrings[2];  
  118.   
  119.             string constr = string.Format("DATA SOURCE={0};user={1};password={2};", serviceName, userID, userPSW);  
  120.   
  121.             return constr;  
  122.         }  
  123.   
  124.     /// <summary>   
  125.     /// 关闭数据库连接   
  126.     /// </summary>   
  127.     public void closeConnect()  
  128.     {  
  129.         try  
  130.         {  
  131.             if (connect != null)  
  132.             {  
  133.                 if (connect.State == ConnectionState.Open)  
  134.                 {  
  135.                     connect.Close();  
  136.                 }  
  137.                 connect.Dispose();  
  138.                       
  139.                 connect = null;  
  140.             }  
  141.         }  
  142.         catch (Exception e)  
  143.         {  
  144.             Console.Write(e.Message);  
  145.         }  
  146.               
  147.     }  
  148.   
  149.         /// <summary>   
  150.         /// 返回查询记录集DataSet   
  151.         /// </summary>   
  152.         /// <returns>System.Data.OracleClient.OracleDataReader</returns>   
  153.         public DataSet returnRecordSet(string sql)  
  154.         {  
  155.             connectionData();  
  156.             ds = new DataSet();  
  157.             adapter = new OracleDataAdapter(sql, connect);  
  158.             adapter.Fill(ds);  
  159.             closeConnect();  
  160.             return ds;  
  161.         }  
  162.   
  163.         /// <summary>   
  164.         /// 返回查询记录数   
  165.         /// </summary>   
  166.         /// <returns>int</returns>   
  167.         public int returnRecordCount(string sql)  
  168.         {  
  169.             int rowCount = 0;  
  170.             connectionData();  
  171.             command = new OracleCommand(sql, connect);  
  172.             try  
  173.             {  
  174.                 rowCount = command.ExecuteNonQuery();  
  175.             }  
  176.             catch  
  177.             {  
  178.                 //throw;   
  179.             }  
  180.             closeConnect();  
  181.             return rowCount;  
  182.         }  
  183.   
  184.         /// <summary>   
  185.         /// 返回第一行第一列的值   
  186.         /// </summary>   
  187.         /// <returns>int</returns>   
  188.         public object returnRCValue(string sql)  
  189.         {  
  190.             object obj = null;  
  191.             connectionData();  
  192.             command = new OracleCommand(sql, connect);  
  193.             try  
  194.             {  
  195.                 obj = command.ExecuteScalar();  
  196.             }  
  197.             catch  
  198.             {  
  199.                 //throw;   
  200.             }  
  201.             closeConnect();  
  202.             return obj;  
  203.         }  
  204.   
  205.         /// <summary>   
  206.         /// sql形式 select COUNT(*) from 表   
  207.         /// </summary>   
  208.         /// <param name="sql"></param>   
  209.         /// <returns></returns>   
  210.   
  211.         public int callRecordCount(string sql)  
  212.         {  
  213.             object obj = null;  
  214.             connectionData();  
  215.             command = new OracleCommand(sql, connect);  
  216.             try  
  217.             {  
  218.                 obj = command.ExecuteScalar();  
  219.             }  
  220.             catch  
  221.             {  
  222.                 //throw;   
  223.             }  
  224.             closeConnect();  
  225.             return Convert.ToInt16(obj);  
  226.         }  
  227.   
  228.         /// <summary>   
  229.         /// 返回结果状态1为成功0为失败   
  230.         /// </summary>   
  231.         ///<param name="myArr">存储SQL语句的集合</param>   
  232.         /// <returns>int</returns>   
  233.         public int ExucteTransaction(ArrayList myArr)  
  234.         {  
  235.             int returnValue = 0;  
  236.   
  237.             connectionData();  
  238.             command = new OracleCommand();  
  239.             command.Connection = connect;  
  240.             OracleTransaction myTran = connect.BeginTransaction();  
  241.             command.Transaction = myTran;  
  242.             try  
  243.             {  
  244.                 for (int i = 0; i < myArr.Count; i++)  
  245.                 {  
  246.                     command.CommandText = myArr[i].ToString();  
  247.                     command.ExecuteNonQuery();  
  248.                 }  
  249.                 myTran.Commit();  
  250.                 returnValue = 1;  
  251.             }  
  252.             catch  
  253.             {  
  254.                 myTran.Rollback();  
  255.                 returnValue = 0;  
  256.             }  
  257.             finally  
  258.             {  
  259.                 connect.Close();  
  260.             }  
  261.             return returnValue;  
  262.         }  
  263.         /// <summary>   
  264.         /// 返回DataReader,非安全代码,必须手动关闭连接!   
  265.         /// </summary>   
  266.         /// <param name="sql">SQL查询语句</param>   
  267.         /// <returns>SqlDataReader</returns>   
  268.         public OracleDataReader retrunDataReader(string sql)  
  269.         {  
  270.             command = new OracleCommand(sql, connect);  
  271.             try  
  272.             {  
  273.   
  274.                 reader = command.ExecuteReader();  
  275.             }  
  276.             catch  
  277.             {  
  278.                 //throw;   
  279.             }  
  280.             return reader;  
  281.         }  
  282.           
  283.   
  284.         // 返回Command   
  285.         public OracleCommand returnCommand(string sql, OracleParameter[] parms)  
  286.         {  
  287.             command = new OracleCommand(sql, connect);  
  288.             foreach (OracleParameter parm in parms)  
  289.             {  
  290.                 command.Parameters.Add(parm);  
  291.             }  
  292.             return command;  
  293.         }  
  294.         /// <summary>   
  295.         /// 调用存储过程,非安全代码,必须手动关闭连接!   
  296.         /// </summary>   
  297.         /// <param name="proceName">存储过程名</param>   
  298.         /// <param name="parms">存储过程参数</param>   
  299.         /// <param name="sdr">返回SqlDataReader对象</param>   
  300.         public void RunProce(string proceName, OracleParameter[] parms, out OracleDataReader sdr)  
  301.         {  
  302.             command = CreateCommand(proceName, parms);  
  303.   
  304.             sdr = command.ExecuteReader(CommandBehavior.CloseConnection);  
  305.         }  
  306.   
  307.         /// <summary>   
  308.         /// 调用存储过程,非安全代码,必须手动关闭连接!   
  309.         /// </summary>   
  310.         /// <param name="proceName"></param>   
  311.         /// <param name="parms"></param>   
  312.         /// <param name="result"></param>   
  313.         public void RunProce(string proceName,OracleParameter[] parms, out int result)  
  314.         {  
  315.             command = CreateCommand(proceName, parms);  
  316.             result = command.ExecuteNonQuery();  
  317.         }  
  318.   
  319.   
  320.         /// <summary>   
  321.         /// 调用存储过程,非安全代码,必须手动关闭连接!   
  322.         /// </summary>   
  323.         /// <param name="proceName"></param>   
  324.         /// <param name="parms"></param>   
  325.         /// <param name="ds"></param>   
  326.         public void RunProce(string proceName, OracleParameter[] parms, out DataSet ds)  
  327.         {  
  328.             command = CreateCommand(proceName, parms);  
  329.             adapter = new OracleDataAdapter(command);  
  330.             ds = new DataSet();  
  331.             try  
  332.             {  
  333.                 adapter.Fill(ds, "result");  
  334.             }  
  335.             catch (Exception e)  
  336.             {  
  337.   
  338.             }  
  339.         }  
  340.   
  341.         /// <summary>   
  342.         /// 调用存储过程,返回多个游标   
  343.         /// </summary>   
  344.         /// <param name="proceName"></param>   
  345.         /// <param name="parms"></param>   
  346.         /// <param name="ds"></param>   
  347.         public void RunMultiCurProce(string proceName, OracleParameter[] parms, out DataSet ds)  
  348.         {  
  349.             command = CreateCommand(proceName, parms);  
  350.             adapter = new OracleDataAdapter(command);  
  351.             ds = new DataSet();  
  352.             try  
  353.             {  
  354.                 adapter.Fill(ds);  
  355.             }  
  356.             catch (Exception e)  
  357.             {  
  358.   
  359.             }  
  360.         }  
  361.   
  362.         /// <summary>   
  363.         /// 调用存储过程,非安全代码,必须手动关闭连接!   
  364.         /// </summary>   
  365.         /// <param name="proceName"></param>   
  366.         /// <param name="parms"></param>   
  367.         /// <param name="result"></param>   
  368.         public void RunProce(string proceName, OracleParameter[] parms)  
  369.         {  
  370.             command = CreateCommand(proceName, parms);  
  371.             command.CommandType = CommandType.StoredProcedure;  
  372.             try  
  373.             {  
  374.                 command.ExecuteNonQuery();  
  375.             }  
  376.             catch (Exception e)  
  377.             {  
  378.                 Console.Write(e.Message);  
  379.             }  
  380.         }  
  381.   
  382.         /// <summary>   
  383.         /// 调用存储过程,非安全代码,必须手动关闭连接!   
  384.         /// </summary>   
  385.         /// <param name="proceName"></param>   
  386.         /// <param name="parms"></param>   
  387.         /// <param name="ds"></param>   
  388.         public void RunProce(string proceName, string tableName, OracleParameter[] parms, out DataSet ds)  
  389.         {  
  390.             command = CreateCommand(proceName, parms);  
  391.             adapter = new OracleDataAdapter(command);  
  392.             ds = new DataSet();  
  393.             try  
  394.             {  
  395.                 adapter.Fill(ds, tableName);  
  396.             }  
  397.             catch(Exception e)  
  398.             {  
  399.             };  
  400.         }  
  401.   
  402.   
  403.         /// <summary>   
  404.         /// 创建SqlComand对象 执行存储过程   
  405.         /// </summary>   
  406.         /// <param name="proceName">存储过程名</param>   
  407.         /// <param name="parms">存储过程参数</param>   
  408.         /// <returns>返回SqlCommand对象</returns>   
  409.         private OracleCommand CreateCommand(string proceName, OracleParameter[] parms)  
  410.         {  
  411.             command = new OracleCommand(proceName, connect);  
  412.             command.CommandType = CommandType.StoredProcedure;  
  413.             if (parms != null)  
  414.             {  
  415.                 foreach (OracleParameter parm in parms)  
  416.                 {  
  417.                     command.Parameters.Add(parm);  
  418.                 }  
  419.             }  
  420.             return command;  
  421.         }  
  422.   
  423.         /// <summary>   
  424.         /// 初始化页面Table数据   
  425.         /// </summary>   
  426.         /// <param name="field"></param>   
  427.         /// <param name="table"></param>   
  428.         /// <param name="condition"></param>   
  429.         public void getInitTable(string field, string table, string condition)  
  430.         {  
  431.             StringBuilder SQL = new StringBuilder();  
  432.             SQL.Append("select " + field + " from " + table + " where " + condition);  
  433.             retrunDataReader(SQL.ToString());  
  434.         }  
  435.   
  436.   
  437.         /// <summary>   
  438.         /// 仅执行数据库操作   
  439.         /// </summary>   
  440.         /// <param name="sql"></param>   
  441.         public void SqlOpt(string sql)  
  442.         {  
  443.             connectionData();  
  444.             command = new OracleCommand(sql);  
  445.             command.Connection = connect;  
  446.             try  
  447.             {  
  448.                 command.ExecuteNonQuery();  
  449.             }  
  450.             catch (OracleException se)  
  451.             {  
  452.                 throw se;  
  453.             }  
  454.             finally  
  455.             {  
  456.   
  457.             }  
  458.             connect.Close();  
  459.         }  
  460.         }  
  461. }  
  1. public string GS_Info(string parm1, string parm2, string parm3)  
  2.   {  
  3.   
  4.       OracleParameter[] parm = null;  
  5.       parm = new OracleParameter[4] { new OracleParameter("parm1", OracleType.VarChar, 10),   
  6.           new OracleParameter("parm2", OracleType.VarChar, 10),   
  7.           new OracleParameter("parm3", OracleType.VarChar, 10),   
  8.           new OracleParameter("Re_CURSOR", OracleType.Cursor, 100000) };  
  9.       parm[0].Direction = System.Data.ParameterDirection.Input;  
  10.       parm[1].Direction = ParameterDirection.Input;  
  11.       parm[2].Direction = ParameterDirection.Input;  
  12.       parm[3].Direction = ParameterDirection.Output;  
  13.       parm[0].Value = parm1;  
  14.       parm[1].Value = parm2;  
  15.       parm[2].Value = parm3;  
  16.       DataSet ds = null;  
  17.       OracleServerDAL OSD = new OracleServerDAL();  
  18.       string result = "";  
  19.       try  
  20.       {  
  21.           OSD.connectionData();  
  22.           OSD.RunProce("ProceName""GS_Table", parm, out ds);  
  23.           result = CommonFormOpt.SerializeDataTableXml(ds.Tables[0]);  
  24.       }  
  25.       catch (Exception)  
  26.       {  
  27.       }  
  28.       finally  
  29.       {  
  30.           OSD.closeConnect();  
  31.       }  
  32.       return result;  
  33.   }  

企鹅博客
  • 本文由 发表于 2020年8月21日 23:24:52
  • 转载请务必保留本文链接:https://www.qieseo.com/186105.html

发表评论