wpf mysql 类_[WPF]C# mysql操作封装类简化操作,支持多线程操作

使用之前请先引用mysql.data.dll

简单的一些增删改操作,请看下面一篇文章

MyDb.cs 类支持多线程操作,里面使用  Mutex 互斥实现操作数据库时把线程挂起来同步数据

里面用到啦一个记录日志的功能,可以到下面地址下载

如果不需要记录using MySql.Data.MySqlClient;

using System;

using System.Collections.Generic;

using System.Threading;

namespace Ank.Class

{

class MyDb

{

private static MyDb db = null;

private static Mutex m_mutex = null;//多线程时互斥锁

private MySqlConnection m_conn;

private string connstr = "";

private string _sql = "";

private Log m_log = null;

private MySqlCommand m_cmd = null;

private MySqlDataReader m_reader = null;

private MyDb(string host, string user, string pwd, string database)

{

try

{

m_log = Log.getInstance();

m_mutex = new Mutex();

this.connstr = "server=" + host + ";user id=" + user + ";password=" + pwd + ";database=" + database + ";charset=utf8mb4;"; //根据自己的设置

m_conn = new MySqlConnection(this.connstr);

//打开数据库连接

m_conn.Open();

}

catch (Exception ex)

{

this.errorMsg(ex);

throw;

}

}

static public MyDb getInstance(string host, string user, string pwd, string database)

{

if (db == null)

{

db = new MyDb(host, user, pwd, database);

}

return db;

}

/**

* 取数据表主键

**/

private string getPrimary(string tablename = "")

{

string key = "";

try

{

m_cmd = new MySqlCommand("SHOW COLUMNS FROM " + tablename, m_conn);

m_reader = m_cmd.ExecuteReader();

//如果有数据就输出

if (m_reader.HasRows)

{

//逐行读取数据输出

while (m_reader.Read())

{

string zizeng = m_reader.GetString("Extra");

if (zizeng == "auto_incr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值