一个在C#中使用Mysql的通用DBHelper,以后可能还会用到
不过首先需要下载Mysql.Data.dll这个官方库
找不到的话可以直接在这里下载
下载地址
备用下载地址
注意需要改一下命名空间(namespace)
代码:
using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace DataBase
{
class DBHelper
{
// 数据库配置
// 编码设置utf8,防止中文乱码
private static string _constr = "server=localhost;uid=root;pwd=password;database=database;Charset=utf8";
// 数据库连接
private MySqlConnection conn;
// 返回数据库连接
private MySqlConnection GetConnection()
{
conn = new MySqlConnection(_constr);
return conn;
}
// 初始化连接并打开
public bool Init()
{
try
{
conn = GetConnection();
conn.Open();
return true;
}
catch (Exception e)
{
//记录日志,退出
MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
// 返回一个适配器
public MySqlDataAdapter DataAdp(string strSQL)
{
MySqlDataAdapter dap = new MySqlDataAdapter(strSQL, conn);
return dap;
}
// 执行查询语句
// 返回DataSet
public DataSet Query(string strSQL,string TableName = null)
{
DataSet ds = new DataSet();
try
{
MySqlDataAdapter dap = new MySqlDataAdapter(strSQL, conn);
if(TableName != null)
dap.Fill(ds,TableName);
else
dap.Fill(ds);
//MySqlCommandBuilder sqlCommandBuilder = new MySqlCommandBuilder(dap);
}
catch (Exception e)
{
//记录日志,并返回空
MessageBox.Show(strSQL + "\n" + e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
return ds;
}
// 执行单条增删改语句
// 返回受影响的行数
public int Execute(string strSQL)
{
MySqlCommand cmd = new MySqlCommand(strSQL, conn);
try
{
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (Exception e)
{
MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return 0;
}
}
// 通过事务执行增删改语句
// 返回受影响的行数
// 发生回滚返回-1
public int ExecuteTransaction(List<string> strSQLs)
{
MySqlCommand cmd = new MySqlCommand("", conn);
int rows = 0;
MySqlTransaction tran = conn.BeginTransaction();
cmd.Transaction = tran;
try
{
foreach (var n in strSQLs)
{
cmd.CommandText = n;
rows += cmd.ExecuteNonQuery();
}
tran.Commit();
return rows;
}
catch (Exception e)
{
MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
tran.Rollback();
return -1;
}
}
// 关闭连接
public void close()
{
conn.Close();
}
}
}
评论 (0)