C#数据库(MSSQL)帮助类
/// <summary>
/// 数据库帮助类
/// <author>Devin</author>
/// </summary>
public sealed class DBHelper
{
private DBHelper() { } /// <summary>
/// 数据库连接字符串
/// </summary>
private static string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString(); /// <summary>
/// 一个有效的数据库连接对象
/// </summary>
private static SqlConnection _MyConnection;
public static SqlConnection MyConnection
{
get
{
if(_MyConnection == null)
{
_MyConnection = new SqlConnection(connStr);
}
return _MyConnection;
}
} /// <summary>
/// 返回受影响行数
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="commandParameters">参数集</param>
/// <returns></returns>
public static int MyExecuteNonQuery(string cmdText, params SqlParameter[] commandParameters)
{
int result = ;
SqlCommand cmd = new SqlCommand();
SqlConnection conn = MyConnection;
try
{
PrepareCommand(cmd, conn, null, cmdText, commandParameters);
result = cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Parameters.Clear();
}
return result;
} /// <summary>
/// 返回DataSet
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="commandParameters">参数集</param>
/// <returns></returns>
public static DataSet MyExecuteDataset(string cmdText, params SqlParameter[] commandParameters)
{
DataSet ds = new DataSet();
SqlConnection conn = MyConnection;
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, conn, null, cmdText, commandParameters);
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
try
{
da.Fill(ds);
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Parameters.Clear();
}
}
return ds;
} /// <summary>
/// 返回DataReader (使用后请关闭DataReader)
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="commandParameters">参数集</param>
/// <returns></returns>
public static SqlDataReader MyExecuteReader(string cmdText, params SqlParameter[] commandParameters)
{
SqlConnection conn = MyConnection;
SqlCommand cmd = new SqlCommand();
try
{
PrepareCommand(cmd,conn,null,cmdText,commandParameters);
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);//关闭DataReader的同时,Connection也将同时关闭
return myReader;
}
catch(SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Parameters.Clear();
}
} /// <summary>
/// 返回首行首列的值
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="commandParameters">参数集</param>
/// <returns></returns>
public static object MyExecuteScalar(string cmdText,params SqlParameter[] commandParameters)
{
SqlConnection conn = MyConnection;
SqlCommand cmd = new SqlCommand();
try
{
PrepareCommand(cmd,conn,null,cmdText,commandParameters);
return cmd.ExecuteScalar();
}
catch(SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Parameters.Clear();
}
} /// <summary>
/// 设置SqlCommand
/// </summary>
/// <param name="cmd">执行对象</param>
/// <param name="conn">连接对象</param>
/// <param name="trans">事务</param>
/// <param name="cmdText">SQL语句</param>
/// <param name="cmdParms">参数集</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = CommandType.Text;
if (cmdParms != null)
{
foreach (SqlParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
}
}
}
C#数据库(MSSQL)帮助类的更多相关文章
- ACCESS数据库C#操作类(包含事务)
转自http://blog.csdn.net/allen3010/article/details/6336717 这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的 ...
- T4模版自动生成MSSQL实体类
在Model层建立ModelAuto.ttinclude文件 <#@ assembly name="System.Core"#> <#@ assembly nam ...
- Sql数据库帮组类
这段时间闲下来写了一些东西,重新写了一个简单的数据库帮组类 public class MyDBHelper { public static readonly string connString = C ...
- 常用数据库的驱动类/URL/默认端口
常用数据库的驱动类/URL/默认端口 1.Oracle: 格式: 驱动:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin ...
- android中与SQLite数据库相关的类
为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
- C#访问SQLServer数据库访问帮助类
SQLServer数据库访问帮助类 这里有一个Mysql帮助类的使用例子可以参考(大同小异) 写了一个Mysql的例子,SQLServer的差不多,一样的 C#简单三层结构设计UI.BLL.DAL 1 ...
- 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...
- [转]DbHelper通用数据库访问帮助类
之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...
随机推荐
- 3.JasperReports学习笔记3-在浏览器生成PDF文件
转自:https://i.cnblogs.com/posts?categoryid=921197 一.新建web工程,导入jasperreports所需的jar包,配置web.xml <serv ...
- [xdoj1029]求解某个数的最高位和最低位
解题关键: 1.最高位求法 long long int x=n^m; 式子两边同时取lg lg(x)=m*lg(n): x=10^(m*lg(n)): 10的整数次方的最高位一定是1,所以x的最高位取 ...
- Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题
一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...
- shell script-条件语句、循环语句
条件语句 #!/bin/bash read -p "input your name:" name #第一种判断 if [ "$name" == "Mi ...
- 树莓派 Learning 003 --- GPIO 000 --- GPIO引脚图
树莓派 Learning 003 - GPIO 000 - GPIO引脚图 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 Raspberr ...
- jQuery学习1
学习jQuery的过程中发现了一个博客把jquery的要点整理的很不错,摘抄其精华以备学习.感谢:http://blog.csdn.net/wph_1129/article/details/59932 ...
- @Html.AntiForgeryToken() 源码分析,表单防伪码的生成
源码来自MVC4@Html.AntiForgeryToken() 源码分析 public MvcHtmlString AntiForgeryToken() { return new MvcHtmlSt ...
- 利用表达式树Expression优化反射性能
最近做了一个.Net Core环境下,基于NPOI的Excel导入导出以及Word操作的服务封装,涉及到大量反射操作,在性能优化过程中使用到了表达式树,记录一下. Excel导入是相对比较麻烦的一块, ...
- docker私有仓库的搭建
Docker搭建本地私有仓库的详细步骤 Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库.使用私有仓库有许多优点:一.节省网络带宽,针对于每个镜像,不用每个人都 ...
- [WIP]JavaScript import, export
创建: 2019/06/14 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/import h ...