/// <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)帮助类的更多相关文章

  1. ACCESS数据库C#操作类(包含事务)

    转自http://blog.csdn.net/allen3010/article/details/6336717 这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的 ...

  2. T4模版自动生成MSSQL实体类

    在Model层建立ModelAuto.ttinclude文件 <#@ assembly name="System.Core"#> <#@ assembly nam ...

  3. Sql数据库帮组类

    这段时间闲下来写了一些东西,重新写了一个简单的数据库帮组类 public class MyDBHelper { public static readonly string connString = C ...

  4. 常用数据库的驱动类/URL/默认端口

    常用数据库的驱动类/URL/默认端口 1.Oracle:     格式:     驱动:oracle.jdbc.driver.OracleDriver     URL:jdbc:oracle:thin ...

  5. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  6. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  7. C#访问SQLServer数据库访问帮助类

    SQLServer数据库访问帮助类 这里有一个Mysql帮助类的使用例子可以参考(大同小异) 写了一个Mysql的例子,SQLServer的差不多,一样的 C#简单三层结构设计UI.BLL.DAL 1 ...

  8. 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查

    Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...

  9. [转]DbHelper通用数据库访问帮助类

    之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...

随机推荐

  1. fabric自动化安装mysql-server

    1.创建文件auto_install_mysql.py vim auto_install_mysql.py --------------------------------------------&g ...

  2. 实现reentrantlock和读写锁

    1 可以手动实现一个类似reentrantlock的工具,首先要维护一个state的标志,代表当前是否有线程已经使用资源.线程lock的时候, 会用cas给state加1,其他线程检测状态.另外需要维 ...

  3. Stream接口

    数据读写可以看作是事件模式(Event)的特例,不断发送的数据块好比一个个的事件.读数据是read事件,写数据是write事件,而数据块是事件附带的信息.Node 为这类情况提供了一个特殊接口Stre ...

  4. 【spring boot logback】日志颜色渲染,使用logback-spring.xml自定义的配置文件后,日志没有颜色了

    接着spring boot日志logback解析之后,发现使用logback-spring.xml自定义的配置文件后,日志没有颜色了 怎么办? 官网处理日志链接:https://logback.qos ...

  5. Centos下添加/删除用户

    useradd具体参数 [root@yhwang ~] useradd -h Usage: useradd [options] LOGIN useradd -D useradd -D [options ...

  6. img src 直接显示图片字符串,微信例子

    <div class="weui-cell__hd"><img src="data:image/png;base64,iVBORw0KGgoAAAANS ...

  7. App集成极光推送步骤

    一.准备: 1.1注册极光开发者账号 1.2添加应用,获取AppKey 1.3下载提供的demo,demo中的AppKey已自动生成为你自己的AppKey 二.集成: 2.1第一种方式:自动集成 Mo ...

  8. 理解linux服务器mcelog如何工作

    What are Machine Check Exceptions (or MCE)? A machine check exception is an error dedected by your s ...

  9. PureUI(扩展版本)

    喜欢一个UI(pure,官网)不怎么更新(可能官方认为不需要更新).我自己做了扩展和修正,整个库下载地址:http://files.cnblogs.com/files/RainbowInTheSky/ ...

  10. 微信小程序-获取当前城市位置

    CSDN链接 https://blog.csdn.net/weixin_42262436/article/details/80458430