C#操作MySQL的类
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的类的更多相关文章
- [node.js学习]为node.js写的一个操作mysql的类
不支持一个对象在不同异步中使用,模仿的php框架 speedphp中的model模块 GaryMysql.js var mysql = require('mysql'); var pool = nul ...
- 自制php操作mysql工具类(DB.class.php)
DB.class.php <?php class DB{ //主机地址 var $host; //用户名 var $username; //密码 var $password; //数据库名 va ...
- php实现简单链式操作mysql数据库类
<?php $dbConfig = require_once(dirname(__FILE__).'/config.php'); class Db{ public $conn; ...
- 构建操作mysql的类
<?phpclass PdoMySQL{ public static $config=array();//设置连接参数,配置信息 public static $link=null;//保存连接标 ...
- node简单操作mysql的类
Creative.js 'use strict'; var pool = require('../utils/MysqlUtils'); var util = require('util'); var ...
- 7、TypeScript类型、接口、类、泛型综合使用 -- TypeScript封装统一操作Mysql Mongodb Mssql的底层类库。
功能:定义一个操作数据库的库,支持Mysql Mssql Mongodb 要求:Mysql Mssql Mongodb功能一样 都有add.update.delete.get方法 注意:约束统一的规范 ...
- php三种方式操作mysql数据库
php可以通过三种方式操作数据库,分别用mysql扩展库,mysqli扩展库,和mysqli的预处理模式分别举案例加以说明 1.通过mysql方式操作数据库 工具类核心代码: <?php cla ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
- .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper
.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql ...
随机推荐
- Excel坐标自动在AutoCad绘图_5
众所周知,Excel对数据处理的功能非常强大,它可以进行数据处理.统计分析已经辅助决策的操作,该软件已经渗透到各个领域.作为一个测绘人,GISer, 也经常利用excel完成一些测量表格的自动化计算, ...
- liunx驱动----系统滴答时钟的使用
2019-3-12系统滴答定时器中断使用 定义一个timer 其实就是使用系统的滴答定时器产生一个中断. 初始化timer init_timer函数 实现如下 void fastcall ini ...
- window.location.replace和window.location.href的区别
简单说说:有3个jsp页面(1.jsp, 2.jsp, 3.jsp). 进系统默认的是1.jsp ,当我进入2.jsp的时候, 2.jsp里面用window.location.replace(&q ...
- 1344:【例4-4】最小花费 dijkstra
1344:[例4-4]最小花费 Dijkstra (1)a [ i ] [ j ] 存转账率(..转后所得率..) (2)dis [ i ] 也就是 a [ 起点 ] [ i ] (3)f [ i ] ...
- SlidingMenu第三篇 --- SlidingMenu使用介绍
在Activity中通过SlidingMenu的构造方法,直接设置侧滑菜单 public class Main2Activity extends Activity { @Override protec ...
- 3、SpringBoot集成Storm WorldCount
RandomSentenceSpout //数据源,在已知的英文句子中,随机发送一条句子出去. public class RandomSentenceSpout extends BaseRichSpo ...
- CefSharp浏览器网页中文语言设置
设置浏览器语言而非cef语言 ChromiumWebBrowser browser = new ChromiumWebBrowser(url); BrowserSettings browserSett ...
- qt 串口
if(ui->connectSerialBtn->text() == tr("打开串口")) { //ui->showSerialInfo->setEnab ...
- win10 右键添加“在此打开powershell”
计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\ 上图中的字符串,直接去下图中的位置复制过来就好
- SPOJ 1811 LCS - Longest Common Substring
思路 和SPOJ 1812 LCS2 - Longest Common Substring II一个思路,改成两个串就有双倍经验了 代码 #include <cstdio> #includ ...