mysql的数据层基类_C# 基于MySQL的数据层基类(MySQLHelper)
using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace DBUtility
{
///
/// 基于MySQL的数据层基类
///
///
/// 参考于MS Petshop 4.0
///
public abstract class MySqlHelper
{
#region 数据库连接字符串
public static readonly string DBConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString();
#endregion
#region PrepareCommand
///
/// Command预处理
///
/// MySqlConnection对象
/// MySqlTransaction对象,可为null
/// MySqlCommand对象
/// CommandType,存储过程或命令行
/// SQL语句或存储过程名
/// MySqlCommand参数数组,可为null
private static void PrepareCommand(MySqlConnection conn, MySqlTransaction trans, MySqlCommand cmd, CommandType cmdType, 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 = cmdType;
if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
#endregion
#region ExecuteNonQuery
///
/// 执行命令
///
/// 数据库连接字符串
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
/// 返回受引响的记录行数
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
///
/// 执行命令
///
/// Connection对象
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
/// 返回受引响的记录行数
public static int ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
///
/// 执行事务
///
/// MySqlTransaction对象
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
/// 返回受引响的记录行数
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(trans.Connection, trans, cmd, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
#endregion
#region ExecuteScalar
///
/// 执行命令,返回第一行第一列的值
///
/// 数据库连接字符串
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
/// 返回Object对象
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
PrepareCommand(connection, null, cmd, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}
///
/// 执行命令,返回第一行第一列的值
///
/// 数据库连接字符串
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
/// 返回Object对象
public static object ExecuteScalar(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
#endregion
#region ExecuteReader
///
/// 执行命令或存储过程,返回MySqlDataReader对象
/// 注意MySqlDataReader对象使用完后必须Close以释放MySqlConnection资源
///
/// 数据库连接字符串
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组
///
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
MySqlConnection conn = new MySqlConnection(connectionString);
try
{
PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);
MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
}
catch
{
conn.Close();
throw;
}
}
#endregion
#region ExecuteDataSet
///
/// 执行命令或存储过程,返回DataSet对象
///
/// 数据库连接字符串
/// 命令类型(存储过程或SQL语句)
/// SQL语句或存储过程名
/// MySqlCommand参数数组(可为null值)
///
public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(conn, null, cmd, cmdType, cmdText, cmdParms);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
cmd.Parameters.Clear();
return ds;
}
}
#endregion
}//end class
}
using System;
using System.Collections;
using System.Configuration;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;
namespace DBTranslater
{
///
///SQLHelper 的摘要说明
///
public abstract class MySqlHelper
{
//数据库连接字符串
public static string Conn = "Database='mydb';Data Source='localhost';User Id='root';Password='admin';charset='utf8'";
// 用于缓存参数的HASH表
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
///
/// 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
///
/// 一个有效的连接字符串
/// 命令类型(存储过程, 文本, 等等)
/// 存储过程名称或者sql命令语句
/// 执行命令所用参数的集合
/// 执行命令所影响的行数
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
///
/// 用现有的数据库连接执行一个sql命令(不返回数据集)
///
mysql的数据层基类_C# 基于MySQL的数据层基类(MySQLHelper)相关推荐
- PHP用于登录的类,基于MySQL
<? /* * 描述:PHP用于登录的类,基于MySQL */ class Login { var $username; //用户名 var $userpass; ...
- ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式
一.ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所 ...
- mysql分布式数据库实践论文_新浪微博基于MySQL的分布式数据库实践
提起微博,相信大家都是很了解的.但是有谁知道微博的数据库架构是怎样的呢?在今天举行的2011数据库技术大会上,新浪首席DBA杨海潮为我们详细解读了新浪微博的数据库架构--基于MySQL的分布式数据库实 ...
- html webservice数据交互_一种基于WebService的数据交换方法
一种基于WebService的数据交换方法 [专利摘要]本发明涉及数据交换[技术领域],特别涉及一种基于WebService的数据交换方法.本发明是以Web服务为依托,通过定义参数的方式进行传入内容和 ...
- dom4j工具类_基于DOM4J的XML文件解析类
XML文件解析分四类方式:DOM解析:SAX解析:JDOM解析:DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja ...
- 基于html5的数据可视化实现方法研究,基于HTML5的数据可视化实现方法研究
信息科技 Information Technology 基于HTML5的数据可视化实现方法研究 高科同济大学电子与信息学院,上海 201804摘要 HTML5的出现,为数据可视化提供了新的实现方法.本 ...
- c winform mysql类_C#连接MySQL数据库操作类
首先需要安装MySQL Connector Net 6.8.3 然后在项目中引用MySQL Connector,如下图所示 C#连接MySQL的操作类代码如下:public class MySQLHe ...
- mysql表 c#实体类,创建基于MySQL表中的C#类
Is there anything built into .Net or visual studio that will allow my to create classes based off of ...
- 基于mysql和php的分布式事务处理1,基于MySQL和PHP的分布式事务处理
PHP(超级文本预处理语言)是一种基于服务器端.执行效率高且易于开发的HTML内嵌式语言,是用户生成动态网页的工具之一[1].MySQL是全球最受欢迎的小型开放源码的关系型数据库管理系统,其体积小.速 ...
最新文章
- elasticsearch常见属性单词解释
- vue调用百度地图API
- JavaFX8 modena样式(css)源码
- 深入理解和应用Float属性
- jeesite缓存问题
- git push 提交时显示 Empty reply from server的解决办法
- 可在单片机上运行的简易图形库
- 机器学习方法_机器学习模型应用方法综述
- 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件
- Android 横屏启动activity,点击屏幕的单击、双击和长按事件
- 警惕!有“庄家”“大V”联合诱骗投资者,忽悠式荐股
- 算法之【辗转相除法】
- python selenium定位元素方法_[原创] python selenium 元素定位方法封装
- HALCON:lines_gauss用法解析
- js回文数的四种判断方法
- 日久见人心,以小见大
- linux系统如何使用qq,Linux系统中怎么使用QQ
- Win11怎么不让软件联网?Win11禁止某个软件联网的方法
- 哪里有周末java培训_北京哪里里Java周末学习班
- 关于区块链安全方面的文献
热门文章
- 设计模式:java及spring观察者模式(有利于代码解耦)
- CodeForces - 986E Prince's Problem
- thinkphp视图中插入php代码
- Python处理Excel文档之openpyxl (三)简单的使用
- C#指南,重温基础,展望远方!(8)C#数组
- java.lang.NumberFormatException: For input string:
- 最新实战讲解.htaccess文件rewrite规则
- [转载] set集合python_python基础-set集合
- [转载] 用python语言设计计时器
- Linux:用户管理