.NET 中数据访问用的 DBHelper(Sql Server) 类
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) 类的更多相关文章
- sql server 类oracle vm_contact() 函数创建
CREATE FUNCTION dbo.fun_orgname(@id int)RETURNS varchar(8000)AS BEGIN DECLARE @str varchar(8000 ...
- SQL Server 数据类型映射
SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decima ...
- SQL Server 数据类型映射 (ADO.NET)
SQL Server 数据类型映射 (ADO.NET) .NET Framework 3.5 更新:November 2007 SQL Server 和 .NET Framework 基于不同的类型系 ...
- SQL Server管理员必备技能之性能优化
SQL Server管理员必备技能之性能优化 高文龙关注1人评论1171人阅读2017-09-22 08:27:41 SQL Server 作为企业必不可少的服务之一,所以对于管理员的日常运维是一个极 ...
- SQL Server 数据类型映射(转载)
SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...
- SQL Server 数据类型与.Net Framework平台映射
SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decim ...
- SQL Server 与 ADO.NET 数据类型映射
SQL Server 数据类型映射 .NET Framework 4.5 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decima ...
- (转)SQL Server 数据类型映射
SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...
- sql server 公共表达式的简单应用(cte)
一.前言 现在做项目数据访问基本都会选择一种orm框架,它以面向对象的形式屏蔽底层的数据访问形式,让开发人员更集中在业务处理上,而不是和数据库的交互上,帮助我们提高开发效率:例如一些简单的insert ...
随机推荐
- 京东物流出问题了?褥了30块羊毛 & 浅析系统架构
本人亲身经历,但后续的流程分析都是个人猜测的,毕竟没有实际做过这块的业务. 订单物流阻塞经过 火热的双11刚刚退去,截止今日,我在京东购买的矿泉水终于到货啦,下单两箱还只收到了一箱 :( ,从下单到收 ...
- CentOS 7下配置ISO镜像文件为本地yum源
环境限制外网怎么办?离线环境怎么解决依赖?yum源配起来,可以解决大部分包的安装^_^ 环境: 虚拟机:VMware Workstation Pro 12.x Linux系统版本:CentOS-7-x ...
- 阿里云:uwsgi--配置出错 bind(): Address already in use [core/socket.c line 769]
按照网上配置nginx+uwsgi+django的文章,nginx启动成功,django启动也成功,单独用uwsgi --http :8000 命令启动uwsgi也成功.使用uwsgi --sock ...
- Java从零到企业级电商项目实战(第1章 课程介绍)
- 2019-10-9:渗透测试,基础学习the-backdoor-factory-master(后门工厂)初接触
该文章仅供学习,利用方法来自网络文章,仅供参考 the-backdoor-factory-master(后门工制造厂)原理:可执行二进制文件中有大量的00,这些00是不包含数据的,将这些数据替换成pa ...
- 2019-9-26:渗透测试,基础学习,js正则以及什么是目录扫描,笔记
js正则表达式,用单个字符串描述或者匹配符合特定语句规则的字符串,相当于一种搜索模式.一些字符序列组合在一起,可以简单也可以复杂模式的,可以去搜索还可以替换 正则表达式语法/表达式/修饰符(可选),例 ...
- JavaScript笔记六
1.对象(Object) - 对象是JS中的引用数据类型 - 对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性 - 使用typeof检查一个对象时,会返回object - 创建对象 - ...
- CSS中如果实现元素浮动和清除浮动,看这篇文章就足够了
浮动基本介绍 在标准文档流中元素分为2种,块级元素和行内元素,如果想让一些元素既要有块级元素的特点也同时保留行内元素特点,只能让这些元素脱离标准文档流即可. 浮动可以让元素脱离标准文档流,可以实现让多 ...
- day20191001国庆默写
day20191001国庆默写恢复 重在理解,而不是死记硬背.认真专心看6遍,做6遍. 学会码字,每天码字二小时.持之以恒. 任重道远,出发,走多少算多少.100分的试卷,会做20分也比一个努力也没有 ...
- 【Android - IPC】之Messenger简介
参考资料: 1.<Android开发艺术探索>第二章2.4.3 2.[Messenger完全解析] 1.Messenger概述 Messenger,译为“信使”,是Android中一种基于 ...