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 ...
随机推荐
- git stash pop 冲突,git stash list 中的记录不会自动删除的解决方法
在使用git stash代码时,经常会碰到有冲突的情况,一旦出现冲突的话,系统会认为你的stash没有结束. 导致的结果是git stash list 中的列表依然存在,实际上代码已经pop出来了. ...
- go basic
go time and rand: package main import ( "fmt" "math/rand" "time" ) fun ...
- kafka安装教程
今天需要在新机器上安装一个kafka集群,其实kafka我已经装了十个不止了,但是没有一个是为生产考虑的,因此比较汗颜,今天好好地把kafka的安装以及配置梳理一下: 1,kafka版本选取: 现在我 ...
- sitecore 获取item的URL
给出一个简单的sitecore项: Item item; 该项目本身不包含它的网址.要获取项目的URL,您需要调用static类Sitecore.Links.LinkManager string ur ...
- 常见mysql的慢查询优化方式
一,第一步.开启mysql慢查询 方式一: 修改配置文件 在 my.ini 增加几行: 主要是慢查询的定义时间(超过2秒就是慢查询),以及慢查询log日志记录( slow_query_log) 方 ...
- caffe常用
1. 关闭模型froward信息 os.environ[' #注意要在improt caffe之前 2. 学习率 step: 配合stepsize,迭代次数达到stepsize的整数倍改变一次, ba ...
- 利用BLEU进行机器翻译检测(Python-NLTK-BLEU评分方法)
双语评估替换分数(简称BLEU)是一种对生成语句进行评估的指标.完美匹配的得分为1.0,而完全不匹配则得分为0.0.这种评分标准是为了评估自动机器翻译系统的预测结果而开发的,具备了以下一些优点: 计算 ...
- 20175208 实验二 《Java面向对象程序设计》实验报告
一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华 学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月09日~2019年4月18日 实验序号:实验二 实验 ...
- kibana查询语法 使用教程
1. 使用双引号包起来作为一个短语搜索: "like Gecko" 2. ? 匹配单个字符; * 匹配0到多个字符 例如:kiba?a, el*search ? * 不能用作第一个 ...
- ROS之坑
我使用ROS建图的时候,用的是Kinect的深度信息转换成laser scan,Rviz仿真环境调用出laser scan信息的时候显示如下错误: Transform [sender=unknown_ ...