C# MySqlHelper
1、MySql官方提供ADO.NET访问模式的MySql.Data.dll,下载地址:http://dev.mysql.com/downloads/connector/net/
2、MySqlHelper,如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
namespace drWm.mdal
{
public class MySqlHelper
{
//private static string connstr = @"server=localhost;uid=root;pwd=121535;database=tem;charset=utf8";
private static string connstr = @"Host=127.0.0.1;UserName=root;Password=drpassword;Database=watermonitor;Port=3406;CharSet=utf8;Allow Zero Datetime=true";
#region 执行查询语句,返回MySqlDataReader
/// <summary>
/// 执行查询语句,返回MySqlDataReader
/// </summary>
/// <param name="sqlString"></param>
/// <returns></returns>
public static MySqlDataReader ExecuteReader(string sqlString)
{
MySqlConnection connection = new MySqlConnection(connstr);
MySqlCommand cmd = new MySqlCommand(sqlString, connection);
MySqlDataReader myReader = null;
try
{
connection.Open();
myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw new Exception(e.Message);
}
finally
{
if (myReader == null)
{
cmd.Dispose();
connection.Close();
}
}
}
#endregion
#region 执行带参数的查询语句,返回MySqlDataReader
/// <summary>
/// 执行带参数的查询语句,返回MySqlDataReader
/// </summary>
/// <param name="sqlString"></param>
/// <param name="cmdParms"></param>
/// <returns></returns>
public static MySqlDataReader ExecuteReader(string sqlString, params MySqlParameter[] cmdParms)
{
MySqlConnection connection = new MySqlConnection(connstr);
MySqlCommand cmd = new MySqlCommand();
MySqlDataReader myReader = null;
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return myReader;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw new Exception(e.Message);
}
finally
{
if (myReader == null)
{
cmd.Dispose();
connection.Close();
}
}
}
#endregion
#region 执行sql语句,返回执行行数
/// <summary>
/// 执行sql语句,返回执行行数
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteSql(string sql)
{
using (MySqlConnection conn = new MySqlConnection(connstr))
{
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
try
{
conn.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
conn.Close();
throw e;
}
finally
{
cmd.Dispose();
conn.Close();
}
}
}
}
#endregion
#region 执行带参数的sql语句,并返回执行行数
/// <summary>
/// 执行带参数的sql语句,并返回执行行数
/// </summary>
/// <param name="sqlString"></param>
/// <param name="cmdParms"></param>
/// <returns></returns>
public static int ExecuteSql(string sqlString, params MySqlParameter[] cmdParms)
{
using (MySqlConnection connection = new MySqlConnection(connstr))
{
using (MySqlCommand cmd = new MySqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
}
#endregion
#region 执行查询语句,返回DataSet
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataSet GetDataSet(string sql)
{
using (MySqlConnection conn = new MySqlConnection(connstr))
{
DataSet ds = new DataSet();
try
{
conn.Open();
MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
DataAdapter.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
return ds;
}
}
#endregion
#region 执行带参数的查询语句,返回DataSet
/// <summary>
/// 执行带参数的查询语句,返回DataSet
/// </summary>
/// <param name="sqlString"></param>
/// <param name="cmdParms"></param>
/// <returns></returns>
public static DataSet GetDataSet(string sqlString, params MySqlParameter[] cmdParms)
{
using (MySqlConnection connection = new MySqlConnection(connstr))
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
try
{
da.Fill(ds, "ds");
cmd.Parameters.Clear();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
return ds;
}
}
}
#endregion
#region 执行带参数的sql语句,并返回object
/// <summary>
/// 执行带参数的sql语句,并返回object
/// </summary>
/// <param name="sqlString"></param>
/// <param name="cmdParms"></param>
/// <returns></returns>
public static object GetSingle(string sqlString, params MySqlParameter[] cmdParms)
{
using (MySqlConnection connection = new MySqlConnection(connstr))
{
using (MySqlCommand cmd = new MySqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
object obj = cmd.ExecuteScalar();
cmd.Parameters.Clear();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
}
#endregion
/// <summary>
/// 执行存储过程,返回数据集
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedureForDataSet(string storedProcName, IDataParameter[] parameters)
{
using (MySqlConnection connection = new MySqlConnection(connstr))
{
DataSet dataSet = new DataSet();
connection.Open();
MySqlDataAdapter sqlDA = new MySqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet);
connection.Close();
return dataSet;
}
}
/// <summary>
/// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
/// </summary>
/// <param name="connection">数据库连接</param>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>SqlCommand</returns>
private static MySqlCommand BuildQueryCommand(MySqlConnection connection, string storedProcName,
IDataParameter[] parameters)
{
MySqlCommand command = new MySqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
foreach (MySqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command;
}
#region 装载MySqlCommand对象
/// <summary>
/// 装载MySqlCommand对象
/// </summary>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText,
MySqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
{
cmd.Transaction = trans;
}
cmd.CommandType = CommandType.Text; //cmdType;
if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
{
cmd.Parameters.Add(parm);
}
}
}
#endregion
}
}
C# MySqlHelper的更多相关文章
- MySqlHelper
package utils; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connec ...
- Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载
MySqlHelper.cs代码如下: using System; using System.Collections.Generic; using System.Linq; using System. ...
- MySqlHelper、CacheHelper
MySqlHelper代码: using System; using System.Collections; using System.Collections.Generic; using Syste ...
- MysqlHelper 需要重写
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;u ...
- PHP简单封装MysqlHelper类
MysqlHelper.class.php 1: <?php 2: 3: /** 4: * Mysql数据帮助类 5: */ 6: class MysqlHelper 7: { 8: func ...
- 在.NET连接MySQL以及封装好的MySQLHelper.cs
1.首先上MySQL网站下驱动:http://www.mysql.com/products/connector/ 2.安装下载的安装包 3.我们在Visual Studio里创建一个Web Appli ...
- MysqlHelper类
连接方式:server=localhost;port=3306;userid=root;password=123456789;database=mysql;persist security info= ...
- 简洁的MysqlHelper
把MySqlXXX的类更改为SqlXXX就可以成为sqlHelper. 另外C#也提供了MysqlHelper和sqlHelper,用起来也挺方便的. public class MySqlHelper ...
- Python学习笔记10-Python MysqlHelper ,MySql 辅助类
自己写了一个MySql辅助类,有需要的拿走: #--encoding:utf-8-- # import MySQLdb class MySQLHelper: myVersion=0.1 def __i ...
随机推荐
- 【新产品发布】《GM1001 4~20mA 高精度电流采集模块》
一.主要特性 1.测量精度高达±0.01%FS±0.002mA: 2.采样电阻仅10欧姆(20mA时压降仅0.2V),对被测系统影响 微乎其微: 3.差分输入,可测量正反电流无需改动硬件,使用方便: ...
- OpenCV学习笔记——点击显示鼠标坐标
点击显示鼠标显示坐标,再次点击时上一次的坐标的会消失…… #include<highgui.h> #include<cv.h> void on_mouse(int event, ...
- 移动Web应用开发入门指南——交互篇
交互篇 从PC到移动端,视觉和交互是用户能直接感受到的差异.在视觉篇中已经提到,移动设备的物理属性一部分影响到视觉,另外一些部分将影响到交互.那么,移动设备影响交互的物理属性都有哪些变化呢?对于这个问 ...
- C#中的托管堆和堆栈
托管堆(Heap)和堆栈(Stack)是内存的逻辑划分. 栈 堆 连续性 连续 不连续 有序性 后进先出 无序 内存管理 操作系统自动释放 GC或人工 存放类型 值类型/引用 引用类型 注:内存格 ...
- FZU 2032 高精度小数加法
题目描写很没意思..就是说给出n个小数 求它们的总和 因为给出的小数点后最多16位而要求保存至12位 而能直接使用的最精确的double只能到12位 于是13的进位可能被忽略 于是不可以用double ...
- PHP / JavaScript / jQuery 表单验证与处理总结: 第①部分 PHP 表单验证与处理
PHP VERSION = 5.3.10 一.关于 $_REQUEST PHP 文档关于 $_REQUEST 的说明: 说明 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组. ...
- java int转integer方法
由于AutoBoxing的存在,以下代码在JDK1.5的环境下可以编译通过并运行. int i = 0; Integer wrapperi = i; 还有其他方法? JDK1.5为Integer增加了 ...
- mysql语句优化认识
- FAQ软件卸载
今天安装了一个PDF 编辑软件pdftk,下载时提示有50多M,感觉不好用,卸载后提示释放空间只有2M,郁闷了.上网查寻,如下命令 sudo dpkg -p package_name卸载软件包及其配置 ...
- RT-Thread 线程的让出
前面两个例子演示的线程调度是由系统“主动干预”的情况的线程切换,其实我们也可以根据实际情况,采用主动让出 CPU 使用权.RT-Thread 中的系统函数: rt_thread_yield(),可以让 ...