asp.net 连接myql

来源:互联网 发布:mac 安装软件 编辑:程序博客网 时间:2024/05/16 11:59

首先先安装ODBC驱动MyODBC-standard-3.51.07-win.msi

<appSettings>
  <add key="data" value="Driver={MySQL ODBC 3.51 Driver};server=000.000.000.000;database=xx;uid=xx;password=xx;option=3"></add>

 </appSettings>

/*
 ********************************************************
  DB Access
 
  ******************************************************
*/
namespace Component
{
 using System;
 using System.Data;
 using System.Data.Odbc;
    using System.Data.Common;
 using System.IO;
 using System.Text;
 using System.Collections;
 
 public class DBManage:IDisposable
 {
  private string _conStr;
        private OdbcConnection _odbcCon;
  public DBManage()
  {
   _conStr = SysConfig.ConStr;
            _odbcCon = new OdbcConnection(_conStr);
  }
  public DBManage(string strcon)
  {
   _conStr = strcon;
            _odbcCon = new OdbcConnection(_conStr);
  }
  public void Dispose()
  {
   Dispose(true);
   GC.SuppressFinalize(true);
  }

  protected virtual void Dispose(bool disposing)
  {
   if (! disposing)
    return;

   if( _odbcCon != null  )
   {
    _odbcCon.Dispose();
    _odbcCon = null;
   }
   
  }

  /// <summary>
  /// update
  /// </summary>
  /// <param name="_sqlStr">sql</param>
  /// <returns> when success return true else false</returns>
  public bool SetData(String _sqlStr)
  {
   bool _success = false;
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;
   
   try
   {
                _odbcCon.Open();
    _command.CommandText = _sqlStr;
    //_command.CommandType = CommandType.StoredProcedure ;
    _command.ExecuteNonQuery();
    _success = true;
   }
   catch
   {
   
   }
   finally
   {
    _odbcCon.Close();
   }
   return _success;

  }

  /// <summary>
  /// update
  /// </summary>
  /// <param name="_sqlStr">sql</param>
  /// <param name="_list">reutrn string after run sql</param>
        /// <returns>when success return true else false</returns>
  public bool SetData(String _sqlStr,ref ArrayList _list)
  {
   bool _success = false;
   OdbcDataReader _reader ;   
   OdbcCommand _command = new OdbcCommand();
   _command.Connection = _odbcCon;
   
   try
   {
    _odbcCon.Open();
    _command.CommandText = _sqlStr;
    //_command.CommandType = CommandType.StoredProcedure;
    _reader=_command.ExecuteReader(CommandBehavior.CloseConnection);
    while(_reader.Read())
    {
     int _i=0;
     int _count = _reader.FieldCount ;
     for(_i=0;_i<_count;_i++)
     {
      _list.Add(_reader.GetValue(_i));
     }
    }
    _reader.Close();
    _success = true;
   }
   catch
   {
    
   }
   finally
   {
    
    _odbcCon.Close();
   }
   return _success;
  }
  
  /// <summary>
  /// get SqlDataReader
  /// </summary>
  /// <param name="_sqlStr">sql</param>
        /// <returns>OdbcDataReader</returns>
        public OdbcDataReader GetDataReader(String commandText)
  {
            OdbcDataReader _reader = null;   
   OdbcCommand _command = new OdbcCommand();
   _command.Connection = _odbcCon;

            try
            {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                _reader = _command.ExecuteReader(CommandBehavior.CloseConnection);               
            }
            catch { }
            return _reader;
  }

  /// <summary>
  ///get DataSet
  /// </summary>
  /// <param name="_sqlStr">sql</param>
  /// <returns></returns>
        public DataSet GetDataSet(String commandText)
  {
   DataSet _ds = new DataSet();
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;
   
   try
   {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                OdbcDataAdapter _oda = new OdbcDataAdapter(_command);
                _oda.Fill(_ds);    
   }
   catch
   {
                _ds = null;
            }
            finally
            {
                if (_odbcCon.State == ConnectionState.Open)
                {
                    _odbcCon.Close();
                }
            }
   return _ds;
  }
        public bool FillDataSet(string commandText, DataSet ds)
        {
            bool success = false;
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;

            try
            {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                OdbcDataAdapter _oda = new OdbcDataAdapter(_command);
                _oda.Fill(ds);
                success = true;
            }
            catch
            {
                //
            }
            finally
            {
                if (_odbcCon.State == ConnectionState.Open)
                {
                    _odbcCon.Close();
                }
            }
            return success;
        }
        public DataTableReader GetDataTableReader(string commandText)
        {
            DataSet _ds = new DataSet();
            DataTableReader _dtr;
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;

            try
            {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                OdbcDataAdapter _oda = new OdbcDataAdapter(_command);
                _oda.Fill(_ds);
                _dtr = _ds.CreateDataReader();
            }
            catch
            {
                _dtr = null;
            }
            finally
            {
                if (_odbcCon.State == ConnectionState.Open)
                {
                    _odbcCon.Close();
                }
            }
            return _dtr;
        }
  public bool TestSqlConnection()
  {
   bool _success = false;

   try
   {
    _odbcCon.Open();
    _success = true;
   }
   catch
   {
   }
   finally
   {
    _odbcCon.Close();
   }
   return _success;
  }
        public int ExecuteNonQuery(string commandText)
        {
            int retval = 0;
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;
            try
            {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                retval = _command.ExecuteNonQuery();
            }
            catch{}
            finally
            {
                _odbcCon.Close();
            }
            return retval;
        }
        public object ExecuteScalar(string commandText)
        {
            object retval = null;
            OdbcCommand _command = new OdbcCommand();
            _command.Connection = _odbcCon;
            try
            {
                if (_odbcCon.State != ConnectionState.Open)
                {
                    _odbcCon.Open();
                }
                _command.CommandText = commandText;
                _command.CommandType = CommandType.Text;
                retval = _command.ExecuteScalar();
            }
            catch { }
            finally
            {
                _odbcCon.Close();
            }
            return retval;
        } 
 }
}
 

原创粉丝点击