public class DBHelper
{
private static string DBConnectString = "Data Source=.;Initial Catalog=Roseonly;Integrated Security=True";
private static SqlConnection conn;
public static SqlDataAdapter dap;
private static SqlCommand cmd;
private static SqlCommandBuilder builder;
private static DBHelper dBHelper;
public static DataSet ds = new DataSet();
public DBHelper()
{
conn = new SqlConnection(DBConnectString);
}
/// <summary>
/// 实例化DBHelper对象
/// </summary>
/// <returns></returns>
public static DBHelper Instance()
{
if (dBHelper == null)
{
dBHelper = new DBHelper();
}
return dBHelper;
}
/// <summary>
/// 打开数据库连接
/// </summary>
void DBOpen()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
void DBClose()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
/// <summary>
/// 执行SQL语句获取数据集
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns>DataTable数据集</returns>
public DataTable GetDataTableBySql(string sql)
{
DBOpen();
DataTable dt = new DataTable();
dap = new SqlDataAdapter(sql, conn);
try
{
dap.Fill(dt);
return dt;
}
catch
{
return null;
}
finally
{
DBClose();
}
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="sql">SQL语句</param>
/// <returns>是否执行成功</returns>
public bool ExcuteSql(string sql)
{
DBOpen();
cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
DBClose();
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="proName">存储过程名称</param>
/// <param name="paras">存储过程参数</param>
/// <returns>是否执行成功</returns>
public bool ExcuteProcedure(string proName, SqlParameter[] paras)
{
DBOpen();
cmd = new SqlCommand(proName, conn);
cmd.CommandType = CommandType.StoredProcedure; for (int i = 0; i < paras.Length; i++)
{
cmd.Parameters.Add(paras[i]);
}
try
{
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
DBClose();
} }
/// <summary>
/// 执行存储过程获得数据集
/// </summary>
/// <param name="proName">存储过程名</param>
/// <param name="paras">存储过程参数</param>
/// <returns>DataTable数据集</returns>
public DataTable GetDataTableByProcedure(string proName, SqlParameter[] paras)
{
DBOpen();
cmd = new SqlCommand(proName, conn);
cmd.CommandType = CommandType.StoredProcedure;
dap = new SqlDataAdapter(cmd);
DataTable dt = new DataTable(); for (int i = 0; i < paras.Length; i++)
{
cmd.Parameters.Add(paras[i]);
}
try
{
dap.Fill(dt);
return dt;
}
catch
{
return null;
}
finally
{
DBClose();
}
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataSet GetDataSetBySql(string sql)
{
DBOpen();
dap = new SqlDataAdapter(sql, conn);
try
{
builder = new SqlCommandBuilder(dap);
return ds;
}
catch
{
return null;
}
finally
{
DBClose();
}
}
}

.NET 中数据访问用的 DBHelper(Sql Server) 类的更多相关文章

  1. sql server 类oracle vm_contact() 函数创建

    CREATE FUNCTION dbo.fun_orgname(@id int)RETURNS varchar(8000)AS BEGIN      DECLARE @str varchar(8000 ...

  2. SQL Server 数据类型映射

    SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decima ...

  3. SQL Server 数据类型映射 (ADO.NET)

    SQL Server 数据类型映射 (ADO.NET) .NET Framework 3.5 更新:November 2007 SQL Server 和 .NET Framework 基于不同的类型系 ...

  4. SQL Server管理员必备技能之性能优化

    SQL Server管理员必备技能之性能优化 高文龙关注1人评论1171人阅读2017-09-22 08:27:41 SQL Server 作为企业必不可少的服务之一,所以对于管理员的日常运维是一个极 ...

  5. SQL Server 数据类型映射(转载)

    SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...

  6. SQL Server 数据类型与.Net Framework平台映射

    SQL Server 和 .NET Framework 基于不同的类型系统.  例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decim ...

  7. SQL Server 与 ADO.NET 数据类型映射

    SQL Server 数据类型映射 .NET Framework 4.5 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decima ...

  8. (转)SQL Server 数据类型映射

    SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...

  9. sql server 公共表达式的简单应用(cte)

    一.前言 现在做项目数据访问基本都会选择一种orm框架,它以面向对象的形式屏蔽底层的数据访问形式,让开发人员更集中在业务处理上,而不是和数据库的交互上,帮助我们提高开发效率:例如一些简单的insert ...

随机推荐

  1. vue路由传参刷新丢失

    没有系统学习过vue,以前使用路由传参都是直接this.$router.push({name:'main',params:{'id': 123}})的,没有在路由定义中配置参数,如下: router: ...

  2. vue 中 keep-alive 缓存数据、离开时位置

    路由中: 页面中: 需要缓存的组件中: 因为是keep-alive  所以在初始化页面的时候 会走一次生命周期 当二次进入的时候就已经是缓存状态了 不会在走生命周期 于是它就有了自己的周期函数分别是 ...

  3. web前端之css基础

    CSS选择器 元素选择器 p{color:red;} ID选择器 #li{ background-color:red; } 类选择器 .c1{ font-size:15px; } 注意: 样式类名不要 ...

  4. 2019-11-5:docker拉去配置oracle数据库

    转载自:https://www.cnblogs.com/OliverQin/p/9765808.html 1.拉取Oracle11g镜像 docker pull registry.cn-hangzho ...

  5. Linux的curl和wget

    wget wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服 ...

  6. 数据降维-PCA主成分分析

    1.什么是PCA? PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法.PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特 ...

  7. Java 从入门到进阶之路(九)

    之前的文章我们介绍了一下 Java 中的构造方法,接下来我们再来看一下 Java 中的引用型数组类型. 现在我们想定义一个坐标系,然后通过横坐标(row)和纵坐标(col)来确定一个坐标点,代码如下: ...

  8. 版本控制神器——git的基本使用

    git基础命令 安装git windows的话,直接下载安装即可 Linux Ubuntu安装,apt-get install git Linux Centos安装,yum install git 配 ...

  9. 5、Docker 核心原理-资源隔离和限制

    Docker 资源隔离 Docker 是利用linux的LXC技术,内核的Kernel namespace Namespace: PID - 通过PID的namespace隔离,可以嵌套 NET - ...

  10. .net基础概念

    .net基础概念 1.       .NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件..NET Framework 具有两 ...