oracle数据库访问类

来源:互联网 发布:软件开发项目收获 编辑:程序博客网 时间:2024/05/29 17:15
using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Windows.Forms;using System.Data.OracleClient;//using Oracle.DataAccess;//using Oracle.DataAccess.Types;//using Oracle.DataAccess.Client;namespace NewUserInstall{    public class DBAccess    {        private static OracleConnection OraConn;        private static OracleCommand OraCmd;        public static string dbName;//DB名称        public static string dbUser;//DB连接用户        public static bool DBConnect(string puser,string pwd,string ds)        {            //DB连接             try            {                if (OraConn!= null)//如果连接没关闭,先关闭                    DBClose();                    string ConString = "Data Source=" + ds + ";User Id=" + puser + ";Password=" + pwd;                    OraConn = new OracleConnection(ConString);                    OraCmd = new OracleCommand("", OraConn);                    OraConn.Open();                    //dbName=OraConn.DatabaseName.ToString();                    //dbName = OraConn.DataSource.ToString();                    //dbUser=OraConn.GetSchema().ToString();                    return true;            }            catch(Exception ex){                MessageBox.Show(ex.Message);                return false;            }        }        public static DataTable DBExecStoredProcedure(string spName, OracleParameter[] sqlParme)        {            try            {                //使用oracle的客户端DataAccess访问                OraCmd.CommandText = spName;                OraCmd.CommandType = CommandType.StoredProcedure;                OraCmd.Parameters.Clear();//先清空                foreach (OracleParameter parme in sqlParme)                {                    OraCmd.Parameters.Add(parme);                }                //使用微软的ORACLE访问接口                //参数2                //sqlParme1.ParameterName = "POUT";                //sqlParme1.OracleDbType = OracleDbType.Varchar2;                //sqlParme[1] = OraCmd.Parameters.Add("POUT", OracleDbType.Varchar2);                //sqlParme.Value = "2020";                ////参数3                //sqlParme = OraCmd.Parameters.Add("pGoodsId", OracleType.VarChar);                //sqlParme.Direction = ParameterDirection.Input;                //sqlParme.Value = "07001";                //执行                //OraCmd.ExecuteNonQuery();                //MessageBox.Show(OraCmd.Parameters["POUT"].Value.ToString());                DataSet ds1;                DateTime EndTime;                TimeSpan sp;                ds1 = new DataSet();                DateTime BegTime = System.DateTime.Now;                OracleDataAdapter da1 = new OracleDataAdapter(OraCmd);//取出数据                da1.Fill(ds1);                EndTime = System.DateTime.Now;                string str = "spare time:" + (EndTime - BegTime).ToString();                DataTable dt = ds1.Tables[0];                if (dt != null && dt.Rows.Count != 0)                    MessageBox.Show("返回记录数" + dt.Rows.Count.ToString() + "\n" + str);                return dt;            }            catch (InvalidCastException e)            {                return null;            }        }        //执行多条插入        public static bool DBExeMuSql(string[] strMSql)        {            bool br = true;            //使用oracle的客户端DataAccess访问            if (OraConn.State == ConnectionState.Closed)                OraConn.Open();            OraCmd = new OracleCommand("", OraConn);            OracleTransaction tx = OraConn.BeginTransaction();            OraCmd.Transaction = tx;            try            {                foreach (string sSql in strMSql)                {                    try                    {                        OraCmd.CommandText = sSql;                        OraCmd.ExecuteNonQuery();                    }                    catch(Exception e)                    {                        MessageBox.Show(e.Message + sSql);                        throw;                    }                }                tx.Commit();                br = true;            }            catch (OracleException ex)            {                br = false;                tx.Rollback();                MessageBox.Show(ex.Message);                return br;            }            return br;        }        public static DataTable DBExecSql(string strSql)        {            string strResult = "";            //使用oracle的客户端DataAccess访问            OraCmd.CommandText = strSql;            try            {                OracleDataAdapter da1 = new OracleDataAdapter(OraCmd);                DataTable dt = new DataTable();                da1.Fill(dt);                return dt;            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);                return null;            }        }        //关闭数据库连接        public static bool DBClose()        {            try            {            if (OraConn!=null)                OraConn.Close();                return true;            }            catch            {                return false;            }        }    }}

0 0