全栈工程师开发手册 (作者:栾鹏)
c#连接mysql数据库,实现有返回值的和没有返回值的命令执行。其中ExecCommand为执行数据库命令,没有返回值。Query_Database为执行数据库命令,接收返回值。
c#连接mysql数据库需要在引用控件中引入MySQLDriverCS.dll,下载
using MySQLDriverCS;
/// <summary>
/// 访问mysql数据库,不需要返回值。需要引入MySQLDriverCS.dll
/// </summary>
/// <param name="host">主机ip地址如:127.0.0.1</param>
/// <param name="database">数据库名称</param>
/// <param name="user">用户名</param>
/// <param name="password">密码</param>
/// <param name="sqlcommand">sql命令</param>
/// <returns></returns>
public static String ExecCommand(string host, string database, string user, string password, string sqlcommand)
{
try
{
MySQLConnection conn = new MySQLConnection(new MySQLConnectionString(host, database, user, password).AsString); //构造连接数据库字符串
conn.Open();//打开连接
//防止乱码
MySQLCommand commn = new MySQLCommand("set names gb2312",conn);
commn.ExecuteNonQuery();
//创建数据库口令
MySQLCommand mysqlcommand = new MySQLCommand(sqlcommand,conn);
mysqlcommand.ExecuteNonQuery();
conn.Close();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
return "";
}
/// <summary>
/// 访问mysql数据库,需要返回值。需要引入MySQLDriverCS.dll
/// </summary>
/// <param name="host">主机ip地址如:127.0.0.1</param>
/// <param name="database">数据库名称</param>
/// <param name="user">用户名</param>
/// <param name="password">密码</param>
/// <param name="sqlcommand">sql命令</param>
/// <returns></returns>
public static System.Data.DataTable Query_Database(string host, string database, string user, string password, string sqlcommand)
{
System.Data.DataTable dt = new System.Data.DataTable();
try
{
MySQLConnection conn = new MySQLConnection(new MySQLConnectionString(host, database, user, password).AsString); //构造连接数据库字符串
conn.Open();//打开连接
//防止乱码
MySQLCommand commn = new MySQLCommand("set names gb2312", conn);
commn.ExecuteNonQuery();
MySQLDataAdapter mda = new MySQLDataAdapter(sqlcommand, conn);
DataSet ds = new DataSet();
mda.Fill(ds, "result");
dt = ds.Tables["result"];
conn.Close();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
return dt; //返回数据集,用于绑定控件作为数据源
}