C#网络编程之连接oracle数据库获取数据

来源:互联网 发布:sql union替代 join 编辑:程序博客网 时间:2024/06/08 06:52

该方法可以在没有安装oracle服务器也没有安装oracle客户端中使用,但是有一点要注意的是:.net版本要4.0以上才能使用。

/// <summary>
        /// 远程连接oracle数据库的连接字符串
        /// </summary>
        private static string connString
        {
            get
            {
                return "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主机名)" +
                       "(PORT=端口))(CONNECT_DATA=(SERVICE_NAME=SID)));Persist Security " +
                       "Info=True;User ID=用户名;Password=口令;";
            }
        }


        /// <summary>
        /// 运程连接oracle数据库,返回要查询的数据
        /// </summary>
        /// <param name="sqlWhere">查询语句</param>
        /// <param name="error">错误信息</param>
        /// <returns>DataTable类型的数据</returns>
        public static OracleConnection ConnectOracle()
        {
            //建立连接


            OracleConnection conn = new OracleConnection();
            //指定连接字符串
            conn.ConnectionString = connString;
            try
            {
                conn.Open();
                return conn;
            }
            catch (Exception e)
            {
                Debug.WriteLine("连接数据库失败: " + e.Message);
            }


            return null;
        }




        public static DataTable GetOracleDatas(OracleConnection conn, string sqlWhere, ref string error)
        {
            DataTable datas = null;
            try
            {
                OracleCommand command = new OracleCommand(sqlWhere, conn);
                OracleDataAdapter adapter = new OracleDataAdapter(command);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                datas = dataSet.Tables[0];
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return datas;
        }