您的位置:首页 > 数据库 > MySQL

C#访问MySQL数据库的方法

2014-06-23 22:16 525 查看
C#访问MySQL数据库的方法

(1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序

下载地址为:
http://dev.mysql.com/downloads/connector/net/6.0.html
我下载的版本为: mysql-connector-net-6.3.8.msi

下载地址如下url:

http://dev.mysql.com/downloads/mirror.php?id=405442

(2)安装mysql-connector-net

然后直接在Windows操作系统安装 mysql-connector-net-6.3.8.msi

默认是安装在C盘:

C:\Program Files\MySQL\MySQL Connector Net 6.3.8\Assemblies

v2.0

v4.0

安装完后我选择的是v2.0版本的

然后在应用工程中引用组件MySQL.Data.dll

(3)封装数据库访问组件DbConnectionMySQL

[csharp] view
plaincopy

/// <summary>

/// MySQL数据库

/// 版本 mysql-connector-net-6.3.8.msi

/// vp:hsg

/// create date:2012-02-28

/// </summary>

[Serializable]

public class DbConnectionMySQL : DbConnectionWrapper

{

public DbConnectionMySQL(string pConnectionString)

: base(pConnectionString)

{

this.m_dbconn = new MySqlConnection(pConnectionString);

this.m_DbConnState = DbConnState.Free;

}

//--

public override DbDataAdapter GetDbDataAdapter()

{

return new MySqlDataAdapter();

}

public override DbDataAdapter GetDbDataAdapter(DbCommand dbCommand)

{

return new MySqlDataAdapter(dbCommand as MySqlCommand);

}

public override DbCommand GetDbCommand()

{

return new MySqlCommand();

}

public override DbConnection GetDbConnection()

{

return new MySqlConnection();

}

public override DbCommandBuilder GetDbCommandBuilder()

{

return new MySqlCommandBuilder();

}

public override DataProviderType GetCurrentDataProviderType()

{

return DataProviderType.Sql;

}

public override bool IsExistsTable(string TableName, string UserName)

{

#region information

bool rbc = false; //TABLES表中去查询 table_name

string dSql = "select * from TABLES where table_name='" + TableName + "'";

DataSet ds = this.ExecuteDataSet(dSql);

if (ds != null)

{

if (ds.Tables[0].Rows.Count > 0)

{

rbc = true;

}

else

{

rbc = false;

}

}

else

{

rbc = false;

}

return rbc;

#endregion

}

public override bool IsExistsField(string FieldName, string TableName)

{

#region information

bool rbc = false;

string dSql = "";

dSql = "select * from " + TableName + " where 1<>1";

DataSet ds = this.ExecuteDataSet(dSql);

if (ds != null)

{

DataTable dt = ds.Tables[0];

for (int j = 0; j < dt.Columns.Count; j++)

{

if (dt.Columns[j].ColumnName.ToString().ToUpper() == FieldName.ToString().ToUpper())

{

rbc = true;

goto Return_End;

}

}

dt.Dispose();

dt = null;

}

ds.Dispose();

ds = null;

Return_End:

return rbc;

#endregion

}

public override char ParameterChar

{

get

{

return ':'; //SQLite的参数符号为:

}

}

public override DbParameter CreateParameter(string name, object value)

{

return new MySqlParameter(name, value);

}

public override DbParameter CreateParameter(string name)

{

DbParameter dbp = new MySqlParameter();

dbp.ParameterName = name;

return dbp;

}

public override DbParameter CreateParameter(string name, DbType dbtype, object value)

{

DbParameter dbp = new MySqlParameter();

dbp.ParameterName = name;

dbp.Value = value;

dbp.DbType = dbtype;

return dbp;

}

public override DbParameter CreateParameter(string name, DbType dbtype, int size, object value)

{

DbParameter dbp = new MySqlParameter();

dbp.ParameterName = name;

dbp.Value = value;

dbp.DbType = dbtype;

dbp.Size = size;

return dbp;

}

}

(4)客户端访问测试开发实例

[csharp] view
plaincopy

public void TestCShape_MySQL()

{

string constr = "server=localhost;User Id=root;password=root;Database=xp_users";

DbConnectionWrapper dbw = new DbConnectionMySQL(constr);

bool rbc=dbw.TestConnection();

this.Context.Response.Write(rbc);

string x = "";

//删除语句

x = "delete from xp_users";

if (dbw.ExecuteQuery(x) > 0)

{

this.Context.Response.Write("删除语句成功!下面是SQL语句<br>" + x);

}

//插入语句

x = "insert into xp_users(gid,uid,uname,sex,email,pwd) values('";

x += "1','hsg77','何XXX',1,'hsg77@163.com','1')";

if (dbw.ExecuteQuery(x) > 0)

{

this.Context.Response.Write("插入语句成功!下面是SQL语句<br>"+x);

}

//查询语句

DataTable dt = dbw.ExecuteDataTable("select * from xp_users");

if (dt != null && dt.Rows.Count > 0)

{

this.Context.Response.Write("<br>用户数:"+dt.Rows.Count);

}

if (dt != null)

{

dt.Dispose();

dt = null;

}

dbw.Dispose();

dbw = null;

}

----the---end---

create date:2012-02-28
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: