using System;
using System.Data;
using System.Configuration;
using System.Web;using System.Data.Common;using System.Collections;
using System.Collections.Specialized;
/// <summary>
/// db 的摘要说明
/// </summary>
/// 
namespace yuqing
{
    public class db
    {
        public db()
        {
            //conn = new SqlConnection(connectionString);
            //conn.Open();        }
        public db(string configString)
        {
            ConfigString = configString;
        }
        private string _confirString = "ConnectionString";
        /**/
        /// <summary>
        /// 属性,设置数据库连接字符串
        /// </summary>
        public string ConfigString
        {
            get
            {
                return _confirString;
            }
            set
            {
                _confirString = value;
            }
        }
        #region 获得数据库的类型public string GetProviderName(string ConfigString)
        /**/
        /// <summary>
        /// 返回数据提供者
        /// </summary>
        /// <returns>返回数据提供者</returns>
        public string GetProviderName(string ConfigString)
        {
          //string lujing=  ConfigurationSettings.GetConfig("ConnenctionString");
          //  string _connectionString = ConfigurationSettings.AppSettings["ConnenctionString"];            string csTemp = AppDomain.CurrentDomain.BaseDirectory;            duquinixin dini = new duquinixin(csTemp + "\\" + "configyq.ini");
            //server=192.168.0.248;uid=suchuyimo;pwd=gnusmas799;database=yuqing
            string server = dini.IniReadValue("bendi", "server");
            string uid = dini.IniReadValue("bendi", "uid");
            string pwd = dini.IniReadValue("bendi", "pwd");
            string database = dini.IniReadValue("bendi", "database");
            string lj = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=" + database + "";            string _connectionString = lj;          //  ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
            if (_connectionString == "" )
            {
                throw new Exception("app.config 中无连接字符串!");
            }
            //ConnectionStringSettings StringSettings = null;
            //if (ConfigString == string.Empty)
            //{
            //    StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
            //}
            //else
            //{
            //    StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
            //}
            return _connectionString;
        }
        /**/
        /// <summary>
        /// 返回数据提供者
        /// </summary>
        /// <returns></returns>
        public string GetProviderName()
        {
            return GetProviderName(ConfigString);
        }
        #endregion        //=====================================================获得连接字符串====================================
        #region 获得连接字符串
        /**/
        /// <summary>
        /// 获得连接字符串
        /// </summary>
        /// <returns></returns>
        public string GetConnectionString(string ConfigString)
        {            string csTemp = AppDomain.CurrentDomain.BaseDirectory;            duquinixin dini = new duquinixin(csTemp + "\\" + "configyq.ini");
            //server=192.168.0.248;uid=suchuyimo;pwd=gnusmas799;database=yuqing
            string server = dini.IniReadValue("bendi", "server");
            string uid = dini.IniReadValue("bendi", "uid");
            string pwd = dini.IniReadValue("bendi", "pwd");
            string database = dini.IniReadValue("bendi", "database");
            string lj = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=" + database + "";            string _connectionString = lj;            //  ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
            if (_connectionString == "")
            {
                throw new Exception("app.config 中无连接字符串!");
            }
            //ConnectionStringSettings StringSettings = null;
            //if (ConfigString == string.Empty)
            //{
            //    StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
            //}
            //else
            //{
            //    StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
            //}
            return _connectionString;        }
        public string GetConnectionString()
        {
            return GetConnectionString(ConfigString);
        }        #endregion        //==============================================GetDbproviderFactory=========================        #region 返回数据工厂  public DbProviderFactory GetDbProviderFactory()
        /**/
        /// <summary>
        /// 返回数据工厂
        /// </summary>
        /// <returns></returns>
        public DbProviderFactory GetDbProviderFactory()
        {
            DbProviderFactory f = null;
            string ProviderName = GetProviderName();
            switch (ProviderName)
            {
                case "System.Data.SqlClient":
                    f = GetDbProviderFactory("System.Data.SqlClient");
                    break;
                case "System.Data.OracleClient":
                    f = GetDbProviderFactory("System.Data.OracleClient");
                    break;
                case "System.Data.OleDb":
                    f = GetDbProviderFactory("System.Data.OleDb");
                    break;
                default:
                    f = GetDbProviderFactory("System.Data.SqlClient");
                    break;
            }
            return f;
        }        /**/
        /// <summary>
        /// 返回数据工厂
        /// </summary>
        /// <param name="providername"></param>
        /// <returns></returns>
        public DbProviderFactory GetDbProviderFactory(string providername)
        {
            return DbProviderFactories.GetFactory(providername);
        }
        #endregion        //==============================================CreateConnection=============================        #region 创建数据库连接 public DbConnection CreateConnection()
        /**/
        /// <summary>
        /// 创建数据库连接
        /// </summary>
        /// <returns></returns>
        public DbConnection CreateConnection()
        {
            DbConnection con = GetDbProviderFactory().CreateConnection();
            con.ConnectionString = GetConnectionString();            return con;
        }
        /**/
        /// <summary>
        /// 创建数据库连接
        /// </summary>
        /// <param name="provdername"></param>
        /// <returns></returns>
        public DbConnection CreateConnection(string provdername)
        {
            DbConnection con = GetDbProviderFactory(provdername).CreateConnection();
            con.ConnectionString = GetConnectionString();            return con;        }
        #endregion        //==============================================CreateCommand================================        #region 创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)
        /**/
        /// <summary>
        /// 创建执行命令对象
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdType"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)
        {
            DbCommand _command = GetDbProviderFactory().CreateCommand();
            _command.Connection = CreateConnection();
            _command.CommandText = sql;
            _command.CommandType = cmdType;
            if (parameters != null && parameters.Length > 0)
            {
                foreach (DbParameter param in parameters)
                {
                    _command.Parameters.Add(param);
                }
            }
            return _command;
        }        /**/
        /// <summary>
        /// 创建执行命令对象
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>执行命令对象实例</returns>
        public DbCommand CreateCommand(string sql)
        {
            DbParameter[] parameters = new DbParameter[0];
            return CreateCommand(sql, CommandType.Text, parameters);
        }
        /**/
        /// <summary>
        /// 创建执行命令对象
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>执行命令对象实例</returns>
        public DbCommand CreateCommand(string sql, CommandType cmdtype)
        {
            DbParameter[] parameters = new DbParameter[0];
            return CreateCommand(sql, cmdtype, parameters);
        }
        /**/
        /// <summary>
        /// 创建执行命令对象
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="parameters">参数</param>
        /// <returns>执行命令对象实例</returns>
        public DbCommand CreateCommand(string sql, DbParameter[] parameters)
        {
            return CreateCommand(sql, CommandType.Text, parameters);
        }
        #endregion        
这是我以前用的一个mssql数据库连接类,现在改用MySQL数据库,谁能给改一下,使得这个类既能链接mssql又能链接MySQL,
方法名最好不变,返回值不要变

解决方案 »

  1.   

    谁有MySQL数据库连接类,给个也行
      

  2.   

    请去下MySql.Data.dll文件。/***************************************************************************
     * 文  件:      MySqlHelper.cs
     * 编写人:      ruijc
     * 描  述:      mysql数据库操作类
     * ************************************************************************/
    using System;
    using System.Configuration;
    using System.Data;
    using MySqlClient=MySql.Data.MySqlClient;
    using MySql.Data.Types;
    using System.Collections;
    namespace SqlLib
    {
        public sealed class MySqlHelper
        {
            //数据库连接字符串
            private string _connectionString = "";
            private static MySqlHelper m_instance = null;
            private MySqlClient.MySqlConnection _connection = null;
            private MySqlHelper(string connectionString)
            {
                _connectionString = connectionString;
                _connection = new MySqlClient.MySqlConnection(connectionString);
            }        /// <summary>
            /// 取得操作实例
            /// </summary>
            /// <param name="ConnectionString"></param>
            /// <returns></returns>
            public static MySqlHelper GetInstance(string connectionString)
            {
                if (m_instance == null)
                {
                    m_instance = new MySqlHelper(connectionString);
                }
                return m_instance;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <param name="parms"></param>
            /// <returns></returns>
            public DataRow ExecuteDataRow(string commandText, params MySqlClient.MySqlParameter[] parms)
            {
                return MySqlClient.MySqlHelper.ExecuteDataRow(_connectionString, commandText, parms);
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <returns></returns>
            public DataSet ExecuteDataset(string commandText)
            {
                if (_connection.State != ConnectionState.Open)
                {
                    _connection.Open();
                }
                DataSet ds = new DataSet();
                try
                {
                    ds = MySqlClient.MySqlHelper.ExecuteDataset(_connection, commandText);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }
                return ds;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <param name="commandParameters"></param>
            /// <returns></returns>
            public DataSet ExecuteDataset(string commandText, params MySqlClient.MySqlParameter[] commandParameters)
            {
                if (_connection.State != ConnectionState.Open)
                {
                    _connection.Open();
                }
                DataSet ds = new DataSet();
                try
                {
                    ds = MySqlClient.MySqlHelper.ExecuteDataset(_connection, commandText, commandParameters);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }
                return ds;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <param name="commandParameters"></param>
            /// <returns></returns>
            public int ExecuteNonQuery(string commandText, params MySqlClient.MySqlParameter[] commandParameters)
            {
                if (_connection.State != ConnectionState.Open)
                {
                    _connection.Open();
                }
                int returnVal = 0;
                try
                {
                    returnVal = MySqlClient.MySqlHelper.ExecuteNonQuery(_connection, commandText, commandParameters);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }            return returnVal;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <returns></returns>
            public int ExecuteNonQuery(string commandText)
            {
                MySqlClient.MySqlParameter[] para = new MySqlClient.MySqlParameter[] { };
                if (_connection.State != ConnectionState.Open)
                {
                    _connection.Open();
                }
                int returnVal = 0;
                try
                {
                    returnVal = MySqlClient.MySqlHelper.ExecuteNonQuery(_connection, commandText, para);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }            return returnVal;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="cmd"></param>
            /// <param name="cmdType"></param>
            /// <returns></returns>
            public int ExecuteNonQuery(MySqlClient.MySqlCommand cmd, CommandType cmdType)
            {
                if (this._connection.State != ConnectionState.Open)
                {
                    this._connection.Open();
                }
                int returnVal = 0;
                try
                {
                    cmd.Connection = this._connection;
                    cmd.CommandType = cmdType;
                    returnVal = cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }            return returnVal;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <returns></returns>
            public MySqlClient.MySqlDataReader ExecuteReader(string commandText)
            {
                return MySqlClient.MySqlHelper.ExecuteReader(_connectionString, commandText);
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <param name="commandParameters"></param>
            /// <returns></returns>
            public MySqlClient.MySqlDataReader ExecuteReader(string commandText, params MySqlClient.MySqlParameter[] commandParameters)
            {
                return MySqlClient.MySqlHelper.ExecuteReader(_connectionString, commandText, commandParameters);
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="connection"></param>
            /// <param name="commandText"></param>
            /// <returns></returns>
            public object ExecuteScalar(MySqlClient.MySqlConnection connection, string commandText)
            {
                if (this._connection.State != ConnectionState.Open)
                {
                    this._connection.Open();
                }
                object returnVal = new object();
                try
                {
                    returnVal = MySqlClient.MySqlHelper.ExecuteScalar(connection, commandText);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    connection.Close();
                }            return returnVal;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <returns></returns>
            public  object ExecuteScalar(string commandText)
            {
                return MySqlClient.MySqlHelper.ExecuteScalar(_connectionString, commandText);
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="commandText"></param>
            /// <param name="commandParameters"></param>
            /// <returns></returns>
            public object ExecuteScalar(string commandText, params MySqlClient.MySqlParameter[] commandParameters)
            {
                if (this._connection.State != ConnectionState.Open)
                {
                    this._connection.Open();
                }
                object returnVal = new object();
                try
                {
                    returnVal = MySqlClient.MySqlHelper.ExecuteScalar(_connection, commandText, commandParameters);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }            return returnVal;
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="connectionString"></param>
            /// <param name="commandText"></param>
            /// <param name="ds"></param>
            /// <param name="tablename"></param>
            public  void UpdateDataSet(string connectionString, string commandText, DataSet ds, string tablename)
            {
                MySqlClient.MySqlHelper.UpdateDataSet(connectionString, commandText, ds, tablename);
            }
        }
    }
      

  3.   

    去网上下载MySql.Data.dll
    添加引用后
    using MySql.Data.MySqlClient;
    然后跟Sqlserver一样的用
      

  4.   

    能给解释一下吗?特别是链接字符串那块,using MySql.Data.MySqlClient;后怎么用?
    我是第一次用MySQL