/*
MySql 类
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using MySql.Data;
using System.Data; namespace DbMysql
{
public class CDbMysql
{
#region 字段设置
/// <summary>
/// 数据库连接-IP地址
/// </summary>
public string db_host { set; private get; }
/// <summary>
/// 数据库连接-用户名
/// </summary>
public string db_uname { set; private get; }
/// <summary>
/// 数据库连接-密码
/// </summary>
public string db_upswd { set;private get;}
/// <summary>
/// 数据库连接-数据库名称
/// </summary>
public string db_database { set; private get; }
/// <summary>
/// 数据库连接-端口
/// </summary>
public string db_prost { set; private get; }
/// <summary>
/// 数据库连接-数据库编码
/// </summary>
public string db_charset { set; private get; }
/// <summary>
/// 数据库连接-连接句柄
/// </summary>
private MySqlConnection db_header;
/// <summary>
/// 连接字符串
/// </summary>
private string dh_con_string { set; get; } public string DbError { private set; get; }
#endregion /// <summary>
/// 构造函数
/// </summary>
/// <param name="host">主机IP</param>
/// <param name="uname">用户名</param>
/// <param name="upassword">密码</param>
/// <param name="prost">端口</param>
/// <param name="charset">编码-默认utf8</param>
public CDbMysql(string host, string uname, string upassword,string dbname, string prost, string charset = "utf8") {
this.db_host = host;
this.db_uname = uname;
this.db_upswd = upassword;
this.db_database = dbname;
this.db_prost = prost;
this.db_charset = charset;
// User Id=root;Host=localhost;Database=studb;Password=root;Port=3307
this.dh_con_string = string.Format("User Id={0};Host={1};Database={2};Password={3};Port={4}",this.db_uname,
this.db_host,this.db_database,this.db_upswd,this.db_prost
); this.DbConnection();
}
/// <summary>
/// 连接数据库
/// </summary>
private void DbConnection(){
this.db_header = new MySqlConnection(this.dh_con_string);
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="QueryString"></param>
/// <returns></returns>
public int ExecuteSql(string QueryString) {
try
{
this.db_header.Open();
using (MySqlCommand comm = new MySqlCommand(QueryString, this.db_header)) {
int result = comm.ExecuteNonQuery();
this.DbClose(this.db_header);
return result; }
}
catch (MySqlException ex)
{
this.DbError = ex.Message.ToString();
return -;
}
finally
{
this.DbClose(this.db_header);
}
}
/// <summary>
/// 返回DataTable
/// </summary>
/// <param name="SqlString"></param>
/// <param name="TablName"></param>
/// <returns></returns>
public DataTable GetDataTable(string SqlString, string TablName) {
try
{
this.db_header.Open();
MySqlDataAdapter Da = new MySqlDataAdapter(SqlString, this.db_header);
DataTable dt = new DataTable(TablName);
Da.Fill(dt);
return dt;
}
catch (MySqlException ex) {
this.DbError = ex.Message.ToString();
return null;
} }
/// <summary>
/// 返回DataReader对象
/// </summary>
/// <param name="SqlString"></param>
/// <returns></returns>
public MySqlDataReader GetDataReader(string SqlString) {
try
{
this.db_header.Open();
MySqlCommand comm = new MySqlCommand(SqlString, this.db_header);
MySqlDataReader dread = comm.ExecuteReader(CommandBehavior.Default);
return dread;
}
catch (MySqlException ex)
{
this.DbError = ex.Message.ToString();
return null;
} }
/// <summary>
/// 获取DataAdapter对象
/// </summary>
/// <param name="SqlString"></param>
/// <returns></returns>
private MySqlDataAdapter GetDataAdapter(string SqlString) {
try
{
this.db_header.Open();
MySqlDataAdapter dadapter = new MySqlDataAdapter(SqlString, this.db_header);
return dadapter;
}
catch (MySqlException ex)
{
this.DbError = ex.Message.ToString();
return null;
} }
/// <summary>
/// 返回DataSet对象
/// </summary>
/// <param name="SqlString"></param>
/// <param name="TableName"></param>
/// <returns></returns>
public DataSet GetDataSet(string SqlString,string TableName) {
try
{
this.db_header.Open();
MySqlDataAdapter Da = this.GetDataAdapter(SqlString);
DataSet ds = new DataSet();
Da.Fill(ds, TableName);
return ds;
}
catch (MySqlException ex) {
this.DbError = ex.Message.ToString();
return null;
}
}
/// <summary>
/// 获取一条数据
/// </summary>
/// <param name="SqlString"></param>
/// <returns></returns>
public string GetOne(string SqlString) {
string result = null;
try
{
this.db_header.Open();
MySqlCommand comm = new MySqlCommand(SqlString, this.db_header);
MySqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{
result = dr[].ToString();
dr.Close();
}
else
{
result = null ;
dr.Close();
} }
catch (MySqlException ex) {
this.DbError = ex.Message.ToString();
}
return result;
}
/// <summary>
/// 连接测试
/// </summary>
/// <returns></returns>
public bool TestConn() {
try {
this.db_header.Open();
return true;
}
catch (MySqlException ex)
{
this.DbError = ex.Message.ToString();
return false;
}
}
/// <summary>
/// 关闭数据库句柄
/// </summary>
public void DbClose(MySqlConnection DbHeader) {
if (DbHeader != null) {
this.db_header.Close();
this.db_header.Dispose();
}; GC.Collect();
} }
}

C# MySql 操作类的更多相关文章

  1. ecshop的Mysql操作类

    摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MY ...

  2. PHP:自己写的mysql操作类

    a{ font-weight: bold; display: block; text-align: center; color: #5887bf; font-size: 22px; } .conten ...

  3. php--->单例模式封装mysql操作类

    php 单例模式封装mysql操作类 单例模式的必要条件(三私一公) 私有的成员属性--防止类外引入这个存放对象的属性 私有的构造方法--为了防止在类外使用new关键字实例化对象 私有的克隆方法--为 ...

  4. Angular4+NodeJs+MySQL 入门-02 MySql操作类

    NodeJs操作MySQL类 此类封装了几个常用的方法:插入,更新,删除,查询,开启事务,事务提交,事务回滚等操作.有一这个类,操作MYSQL就方便多了. 批处理,存储过程等方法还没有添加,因为觉得目 ...

  5. MySQL操作类的封装(PHP)

    <?php class mysql{ /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操 ...

  6. mysql操作类

    同事今天推荐了一个mysql链接操作的类,地址 https://github.com/joshcam/PHP-MySQLi-Database-Class  大概看了一下,还是不错的,有点意思,先记录一 ...

  7. MySQL操作类(本人自己写的)

    package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  8. PHP封装的一个单例模式Mysql操作类

    掌握满足单例模式的必要条件----三私一公. ①私有的构造方法-为了防止在类外使用new关键字实例化对象. ②私有的成员属性-为了防止在类外引入这个存放对象的属性. ③私有的克隆方法-为了防止在类外通 ...

  9. PHP值mysql操作类

    <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/6/27 * Time: 18:55 */ Class M ...

随机推荐

  1. VersionCode和VersionName

    关于apk更新版本的问题   先上结论: Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途. VersionCode:对消费者不可见,仅用于 ...

  2. VisJS 随机图

    <!doctype html> <html> <head> <title>Random nodes</title> <style ty ...

  3. 【转】开发者分享如何创造一款优秀的iOS游戏——2013-08-25 17

    http://game.dapps.net/gamedev/experience/889.html 创造出<Temple Run>的夫妻团队在高峰时期每天能够获得"好几万&quo ...

  4. Spring整合JMS(一)——基于ActiveMQ实现

    1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到 ...

  5. IDispose(), Finalize()

    C#  using 用法: 1. 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型.(见例1-1) 2. 作为语句,用于定义一个范围,在此范围的末尾将释放对象.(见例1-2) (例子1- ...

  6. 构建简单的socket连接池

    一开始,选用Vector<E>来存放连接.由于这个容器不是并发安全的,于是,每个方法都加一个synchronized来保持并发时的同步操作,并发效率很差,果断放弃.空余时间研究了下多线程的 ...

  7. java Spring bean作用域

    1. Singleton作用域 当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则 ...

  8. com.android.builder.packaging.DuplicateFile

    解决方法:     packagingOptions {        exclude 'META-INF/DEPENDENCIES'        exclude 'META-INF/NOTICE' ...

  9. c#调用c++ dll(一)

    首先来说说c++中的dll 核心的一些知识 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作.可能存在一些模块的功能较为通用,在构造其它软件系统时 ...

  10. hadoop_集群安装_1

    这篇文章中主要介绍的是,如何基于VM安装Linux,以及如何在安装好Linux之后,基于操作系统安装VMTools. 在安装之前,应该先规划好 每个node*的IP地址,以及 hostname: no ...