SqlHelper帮助类_上(SQLServer数据库含Connection详解)
在操作数据库时,经常会用到自己封装的SqlHelper。这里主要对SQLServer数据库的Sqlhelper,主要用于在同一个连接中完成CRUD!
一.ADO.NET中的Connection详解:
- 连接字符串
- 写法一:
- "Data Source=服务器名; Initial Catalog=数据库; User ID =用户名; Password=密码; Charset=UTF8; "
- 写法二:
- "Server=服务器名; Database=数据库; uid=用户名; Password=密码;Charser=UTF8"
注:Integrated Security = True;
解释:integrated security=true 的意思是集成验证,也就是说使用Windows验证的方式去连接到数据库服务器。这样方式的好处是不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。
Connection:
- Connection是实现了IDisposable接口的对象。使用Connection需要释放资源。
using(Connection 对象)
{
//该方法体内容执行完后就自动释放资源了
}
二.config配置文件:
<connectionStrings>
<add name="constr" connectionString="server=127.0.0.1;user id=用户名;password=密码;database=数据库"/>
</connectionStrings>
三.SqlHelper:
/// <summary>
/// 获取web.config的连接字符串
/// </summary>
private static readonly string connstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; /// <summary>
/// 将数据加载到本地,在本地对数据进行操作
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="parameter">参数化查询</param>
/// <returns>返回从数据库中读取到的DataTable表</returns>
public static DataTable ExecuteQuery(string sql, params SqlParameter[] parameter)
{
using (SqlConnection conn = new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameter);
DataTable tab = new DataTable();
using (SqlDataReader reader = cmd.ExecuteReader())
{
tab.Load(reader);
return tab; }
}
}
/// <summary>
/// 用于执行增加和删除语句
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="parameter">参数化查询</param>
/// <returns>有多少语句执行成功</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameter)
{
using (SqlConnection conn = new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameter);
return cmd.ExecuteNonQuery();
}
}
/// <summary>
/// 执行语句后,返回第一行第一列的数据
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns>object类型的值</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] parameter)
{
using (SqlConnection conn = new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameter);
return cmd.ExecuteScalar();
}
}
/// <summary>
/// 在数据库中,进行数据库的查询操作
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameter)
{
SqlConnection conn = new SqlConnection(connstr);
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameter);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
SqlHelper帮助类_上(SQLServer数据库含Connection详解)的更多相关文章
- SqlServer数据库性能优化详解
数据库性能优化详解 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据 ...
- [转]SqlServer数据库同步方案详解
SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 SqlServer数据库同步是个比较好的解决方案.Sq ...
- 转载:SqlServer数据库性能优化详解
本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...
- SQLServer数据库降级方法详解
右击数据库,有一个任务选项--扩展里面有一个生成脚本 设置脚本选项 高级 最下方"要编写的脚本类型" 选择 框架及数据 完成
- SQLHelper帮助类_下(支持多数据库的封装)
在上篇关于SQLHelper类中,主要针对SQLServer数据库进行的.在使用别的数据库,就要修改部分代码!所以今天就写一个支持多数据库的封装!主要用到枚举,读取config文件!接口的简单用法.获 ...
- 【数据库】jdbc详解
try { if(resultSet!=null){ resultSet.close(); } }catch (SQLException e){ e.printStackTrace(); }final ...
- 数据库开发-pymysql详解
数据库开发-pymysql详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python支持的MySQL驱动 1>.什么是驱动 与MySQL通信就是典型的CS模式.Se ...
- Swift-Realm数据库的使用详解
Swift-Realm数据库的使用详解 概述 Realm 是一个跨平台的移动数据库引擎,其性能要优于 Core Data 和 FMDB - 移动端数据库性能比较, 我们可以在 Android 端 re ...
- Net Core中数据库事务隔离详解——以Dapper和Mysql为例
Net Core中数据库事务隔离详解--以Dapper和Mysql为例 事务隔离级别 准备工作 Read uncommitted 读未提交 Read committed 读取提交内容 Repeatab ...
随机推荐
- AngularJS 讲解五, Factory ,Service , Provider
一. 首先说一下,为什么要引入Factory,Service和Provider这三个Service层. 1.因为我们不应该在controller层写入大量的业务逻辑和持久化数据,controller层 ...
- 用fluent模拟内循环床气化燃烧(调试过程记录)
模拟对象为文献Combined gasification of coal and biomass in internal circulating fluidized bed[1]中的内循环气化炉.[1]h ...
- --@angularJS--路由插件UI-Router
UI-Router是angular路由插件,上一篇我们讲到了angularJS自带路由,可惜在路径嵌套上表现的有所欠缺,而angular-UI-Router插件正好弥补了这一点. [示例]: □.UI ...
- LazyInitializationException--由于session关闭引发的异常
1,页面中进行person.department.departmentName的读取 2,Action 中只读取了person,事务作用在Service的方法中 3,后台会有org.hibernate ...
- 关于GCD同步组实现多个异步线程的同步执行中的注意点
在App开发中经常会遇到多个线程同时向服务器取数据, 如果每个线程取得数据后都去刷新UI会造成界面的闪烁 也有可能出现部分数据还没有获取完毕造成程序crash 之前在网上看到很多是利用dispatch ...
- FP Tree算法原理总结
在Apriori算法原理总结中,我们对Apriori算法的原理做了总结.作为一个挖掘频繁项集的算法,Apriori算法需要多次扫描数据,I/O是很大的瓶颈.为了解决这个问题,FP Tree算法(也称F ...
- 关于flash擦除的方法
一般的Flash,只允许写时将1变成0,而不允许0变成1:仅当擦除时将0变成1.所以写全0xff是没什么意义的 以前对flash只能进行一次写很困惑,这句话解释了原因. norflash就是 对bit ...
- POJ3728 LCA RMQ DP
题意简述:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. ...
- ubuntu14.04 下手动安装java jdk
ubuntu14.04 下手动安装java jdk 第一步: 下载jdk.tar.gz (这里假设下载的文件名为jdk.tar.gz) 第二步: 解压 sudo tar -zxvf ./jdk.tar ...
- 小学生之Hibernate插入数据修改数据使用数据库默认值的实现
最近在写一个案例,定时任务对数据库进行更新操作,废话不多说,上代码: @Component("taskJob") public class TaskJob extends Hibe ...