c# 连接oracle 及对应获取数据集

小明 2025-05-05 05:23:55 5

1、���据库配置xml,首先连接成功后会自动创建xml并保存到对应xml,如下

()

static string ConnPath = AppDomain.CurrentDomain.BaseDirectory + "ConnOrcle.xml";

声明xml名称,便于后续写入对应数据库参数

()

2、创建xml

///

        /// 创建XML节点

        ///

        ///

        ///

        ///

        ///

        ///

        public static void CreateXMLInform(string ip, string port, string sid, string user, string pwd)

        {

            XmlDocument xmlDoc = new XmlDocument();

            XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

            xmlDoc.AppendChild(xmlDecl);

            XmlElement xe = xmlDoc.CreateElement("Conn");//创建一个Conn节点

            XmlElement xc1 = xmlDoc.CreateElement("ConnIP");//IP

            xc1.InnerText = ip;

            xe.AppendChild(xc1);

            XmlElement xc2 = xmlDoc.CreateElement("ConnPort");//端口

            xc2.InnerText = port;

            xe.AppendChild(xc2);

            XmlElement xc3 = xmlDoc.CreateElement("ConnSid");//服务器名称

            xc3.InnerText = sid;

            xe.AppendChild(xc3);

            XmlElement xc4 = xmlDoc.CreateElement("ConnUser");//用户名

            xc4.InnerText = user;

            xe.AppendChild(xc4);

            XmlElement xc5 = xmlDoc.CreateElement("ConnPwd");//密码

            xc5.InnerText = pwd;

            xe.AppendChild(xc5);

            xmlDoc.AppendChild(xe);

            xmlDoc.Save(ConnPath);

        }

3、声明连接类实体 ConnEntity

 private string connIP;//ip地址

        private string connPort;//端口

        private string connSid;//服务器名称

        private string connUser;//用户名

        private string connPwd;//密码

4、读取xml内容并赋值给ConnEntity

///

        /// 读取XML内容赋值给连接

        ///

        ///

        public static ConnEntityReadXML()

        {

            ConnEntity connentiy= new ConnEntity();

            if (File.Exists(ConnPath))

            {

                XmlDocument xmlDoc = new XmlDocument();

                xmlDoc.Load(ConnPath);

                XmlNodeList list = xmlDoc.SelectSingleNode("Conn").ChildNodes;

                connentiy.ConnIP = list[0].InnerText;

                connentiy.ConnPort = list[1].InnerText;

                connentiy.ConnSid = list[2].InnerText;

                connentiy.ConnUser = list[3].InnerText;

                connentiy.ConnPwd = list[4].InnerText;

            }

            return connentiy;

        }

5、连接数据库测试

 ///

        /// 连接数据库

        ///

        /// 地址

        /// 端口

        /// 服务名称

        /// 用户

        /// 密码

        public static bool ConnectionTestDB(string ip, string port, string sid, string user, string pwd)

        {

            ConnOracle(ip, port, sid, user, pwd);

            try

            {

                //不为空 并且 是关闭或者断了的情况下,才连接

                if (Connection != null && (Connection.State == System.Data.ConnectionState.Closed || Connection.State == System.Data.ConnectionState.Broken))

                {

                    Connection.Open();

                    ReturnOwner = Select("SELECT OWNER, TABLE_NAME FROM ALL_TAB_COMMENTS ORDER BY OWNER, TABLE_NAME");

                }

                MessageBox.Show("连接成功!");

                return true;

            }

            catch (Exception ex)

            {

                MessageBox.Show(+“连接失败,请检查数据库配置参数”ex.Message.ToString());

                return false;

            }

        }

6、其中调用的函数

 ///

        /// 地址

        /// 端口

        /// 服务名称

        /// 用户

        /// 密码

        /// OleDbConnection

        private static OracleConnection ConnOracle(string ip, string port, string sid, string user, string pwd)

        {

            string connStr;

            connStr = "Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = " + ip + ")(PORT = " + port + "))) (CONNECT_DATA = (SERVICE_NAME = " + sid + ")));User ID=" + user + ";Password=" + pwd + ";";

            Connection = new OracleConnection(connStr);

            return Connection;

        }

详细看源码网址及下载

c#oracle创建实体类操作资源-CSDN文库

The End
微信