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通用数据库访问帮助类
之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...
随机推荐
- electron将网站打包成桌面应用
需求同 NW.js将网站打包成桌面应用 1. 从github上克隆electron示例项目 git clone https://github.com/electron/electron-quick-s ...
- python 基础 字典生成式
dict1 = {1:2,3:4,6:7,9:10} print dict((v,k) for k,v in dict.items()) 结果 {2:1.4:3,10:9,7:6} res = [{' ...
- linux日常管理-防火墙netfilter工具-iptables-3
可以指定chain链的总开关 把链的关掉,针对端口开放,更加安全,但是不建议这么做 实例:filter表INPUT链.INPUT策略改成DROP. 把192.168.0.0/24网段开通22端口.对所 ...
- [dp]最长单调递增子序列LIS
https://www.51nod.com/tutorial/course.html#!courseId=12 解题关键: 如果将子序列按照长度由短到长排列,将他们的最大元素放在一起,形成新序列$B\ ...
- 使用Openssl编译svn并安装
我的操作系统是CentOS 6.8.公司的svn服务器安装在windows系统中,并且使用 VisualSVN 对外提供https服务. 在centos 6.8上如果我使用yum 安装svn,那么根本 ...
- hdu1047
#include<stdio.h>#include<string>#include<iostream>using namespace std; //高精度加法//只 ...
- 工作随记--div最小高度
给div添加最小高度 min-height:1000px;//IE7\FF height:100%;//IE6\IE7\FF 这个很重要,IE6定死高度后,需要再加上这条,才能自动延伸. _heigh ...
- .NET 中文件嵌套,例如:cshtml文件下面嵌套css和js【机器翻译】
越来越多的我发现自己在我的一些较大的Web项目中丢失了文件.有很多内容要处理 - HTML视图,几个派生CSS页面,页面级CSS,脚本库,应用程序范围的脚本和页面特定的脚本文件等等.幸运的是,我使用R ...
- C++基础之类和对象一
(1)类是一种复杂的数据类型,它是抽象数据类型的实现,是数据和相关操作的封装体.类用来确定一类对象的形为,而这些行为是通过类的内部数据和操作来确定的.这些行为是通过一种操作接口来描述的.(2)类的定义 ...
- [CentOS7] 增加yum源
下载最新rpm文件:http://fedoraproject.org/wiki/EPEL 通过源文件rpm来增加: rpm -ivh epel-release-latest-7.noarch.rpm