C#操作MySQL的类

时间:2021-05-28 02:04:42

C#操作MySQL的类

public class MySqlService
{
private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(MySqlService)); //server=localhost;user id=root;password=root;persist security info=True;database=test
//Data Source=127.0.0.1;port=3306;Initial Catalog=tsyw;user id=root;password=q2ii3sfc;Charset=gbk
private string conn_str = "server=localhost;user id=root;password=q2ii3sfc;persist security info=True;database=win008"; public MySqlService()
{ }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="conn_str"></param>
public MySqlService(string conn_str)
{
this.conn_str = conn_str;
} /// <summary>
/// 执行sql语句返回List-Hashtable数据集
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public List<Hashtable> Select(string sql)
{
List<Hashtable> lst = new List<Hashtable>();
using (MySqlConnection connection = new MySqlConnection(this.conn_str))
{
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand(sql, connection);
MySqlDataReader mdr = cmd.ExecuteReader();
int columnCount = mdr.FieldCount;
string _key = string.Empty;
while (mdr.Read())
{
Hashtable ht = new Hashtable();
for(int i = 0; i < columnCount; i++)
{
_key = mdr.GetName(i);
ht[_key] = mdr[i];
} lst.Add(ht);
}
mdr.Close();
connection.Close();
}
catch (Exception ex)
{
logger.Warn("执行操作语句异常, SQL:" + sql, ex);
}
}
return lst;
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public System.Data.DataSet Query(string sql)
{
return null;
} /// <summary>
/// 执行操作语句 delete/insert/update
/// <para>返回影响行数</para>
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int Execute(string sql)
{
int rest = 0;
using (MySqlConnection connection = new MySqlConnection(this.conn_str))
{
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand(sql, connection);
rest = cmd.ExecuteNonQuery();
rest = (int)(cmd.LastInsertedId>0?cmd.LastInsertedId:rest); connection.Close();
}
catch (Exception ex)
{
logger.Warn("执行操作语句异常, SQL:" + sql, ex);
}
} return rest;
} public Hashtable FetchRow(string sql)
{
Hashtable ht = new Hashtable();
using (MySqlConnection connection = new MySqlConnection(this.conn_str))
{
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand(sql, connection);
MySqlDataReader mdr = cmd.ExecuteReader();
int columnCount = mdr.FieldCount;
string _key = string.Empty;
while (mdr.Read())
{
for (int i = 0; i < columnCount; i++)
{
_key = mdr.GetName(i);
ht[_key] = mdr[i];
}
break;
}
mdr.Close();
connection.Close();
}
catch (Exception ex)
{
logger.Warn("执行操作语句异常, SQL:" + sql, ex);
}
}
return ht;
} /// <summary>
/// 获取语句第一行第一列数据
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public T FetchFirst<T>(string sql) {
T t;
using (MySqlConnection connection = new MySqlConnection(this.conn_str))
{
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand(sql, connection);
t = (T)cmd.ExecuteScalar();
connection.Close();
}
catch (Exception ex)
{
t = default(T);
logger.Warn("执行操作语句异常, SQL:" + sql, ex);
}
}
return t;
} /// <summary>
/// 检查链接是否OK
/// </summary>
/// <returns></returns>
public bool Ping()
{
bool rest = false;
using (MySqlConnection connection = new MySqlConnection(this.conn_str))
{
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand("select 1", connection);
cmd.ExecuteScalar();
connection.Close();
rest = true;
}
catch
{
rest = false;
}
} return rest;
} }
C#操作MySQL的类
[C#cāozuò MySQL de lèi]
C#操作MySQL的类
C# operation MySQL class
 

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

  1. &lbrack;node&period;js学习&rsqb;为node&period;js写的一个操作mysql的类

    不支持一个对象在不同异步中使用,模仿的php框架 speedphp中的model模块 GaryMysql.js var mysql = require('mysql'); var pool = nul ...

  2. 自制php操作mysql工具类(DB&period;class&period;php)

    DB.class.php <?php class DB{ //主机地址 var $host; //用户名 var $username; //密码 var $password; //数据库名 va ...

  3. php实现简单链式操作mysql数据库类

    <?php $dbConfig = require_once(dirname(__FILE__).'/config.php'); class Db{     public $conn;      ...

  4. 构建操作mysql的类

    <?phpclass PdoMySQL{ public static $config=array();//设置连接参数,配置信息 public static $link=null;//保存连接标 ...

  5. node简单操作mysql的类

    Creative.js 'use strict'; var pool = require('../utils/MysqlUtils'); var util = require('util'); var ...

  6. 7、TypeScript类型、接口、类、泛型综合使用 -- TypeScript封装统一操作Mysql Mongodb Mssql的底层类库。

    功能:定义一个操作数据库的库,支持Mysql Mssql Mongodb 要求:Mysql Mssql Mongodb功能一样 都有add.update.delete.get方法 注意:约束统一的规范 ...

  7. php三种方式操作mysql数据库

    php可以通过三种方式操作数据库,分别用mysql扩展库,mysqli扩展库,和mysqli的预处理模式分别举案例加以说明 1.通过mysql方式操作数据库 工具类核心代码: <?php cla ...

  8. LightMysql:为方便操作MySQL而封装的Python类

    原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...

  9. &period;NET 使用 MySql&period;Data&period;dll 动态库操作MySql的帮助类--MySqlHelper

    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql ...

随机推荐

  1. 远控软件VNC攻击案例研究

    欢迎大家给我投票: http://2010blog.51cto.com/350944           本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  2. Cracking the coding interview--Q2&period;1

    原文: Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow would you solve this p ...

  3. 风雨哈佛路(Homeless to Harvard&colon; The Liz Murray Story)-献给困境中的人

                                                     今天无意中看到一部很老的电影<风雨哈佛路>,一曲感人励志向上的美国影片,整个故事震撼人心. ...

  4. 关注云端搜索技术:elasticsearch,nutch,hadoop,nosql,mongodb,hbase,cassandra 及Hadoop优化

    http://www.searchtech.pro/ Hadoop添加或调整的参数: 一.hadoop-env.sh1.hadoop的heapsize的设置,默认1000 # The maximum ...

  5. mysql 索引列为Null的走不走索引及null在统计时的问题

    要尽可能地把字段定义为 NOT NULL,即使应用程序无须保存 NULL(没有值),也有许多表包含了可空列(Nullable Column)这仅仅是因为它为默认选项.除非真的要保存 NULL,否则就把 ...

  6. 硬木地板 JDFZ1667

    Description 举行计算机科学家盛宴的大厅的地板为M×N (1<=M<=9, 1<=N<=9)的矩形.现在必须要铺上硬木地板砖.可以使用的地板砖形状有两种:1) 2×1 ...

  7. JSBridge的实现

    JSBridge是Native代码与JS代码的通信桥梁.目前的一种统一方案是:H5触发url scheme->Native捕获url scheme->原生分析,执行->原生调用h5. ...

  8. Java 验证代理ip

    原文地址:http://www.cnblogs.com/junrong624/p/5416503.html 1 import java.io.IOException; import java.io.I ...

  9. zombodb 低级api 操作

    zombodb 低级api 允许直接从zombodb 索引中进行insert.delete 文档,同时保留了mvcc 的特性,但是数据没有存储在 pg 中,但是也带来数据上的风险,我们需要注意进行es ...

  10. Linux下nautilus的右键快捷菜单项设置

    某一天我的Linux更新完后, 我照常在文件夹下点击右键想打开终端, 却发现右键快捷菜单没有Open in terminal的菜单项了. 在网上查找了一下, 结合自己系统的情况发现了解决办法. 由于我 ...