SqlServerDBHelper类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
/// <summary>
/// 连接数据库类
/// </summary>
public class SqlServerDBHelper
{
/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public static SqlConnection GetConnection()
{
string conString = System.Configuration.ConfigurationManager.ConnectionStrings["connstring"].ToString();//定义连接数据库字符集
return new SqlConnection(conString);//返回连接数据库对象
}
/// <summary>
/// 用数据填充的方法查询
/// </summary>
/// <param name="type"></param>
/// <param name="sql"></param>
/// <param name="pares"></param>
/// <returns></returns>
public DataSet GetDataSet(CommandType type, string sql, params SqlParameter[] pares)
{
SqlConnection con = GetConnection();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.SelectCommand.CommandType = type;
if (pares != null)
{
foreach (SqlParameter pare in pares)
{
da.SelectCommand.Parameters.Add(pare);
}
}
da.Fill(ds);
return ds;
}
public DataSet GetDataSet(string sql, params SqlParameter[] pares)
{
return GetDataSet(CommandType.Text, sql, pares);
}
public SqlDataReader GetSqlDataReader(CommandType type, string sql,out SqlConnection con, params SqlParameter[] pares)
{
con = GetConnection();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandType = type;
con.Open();
if (pares != null)
{
foreach (SqlParameter pare in pares)
{
cmd.Parameters.Add(pare);
}
}
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
public SqlDataReader GetSqlDataReader(string sql,out SqlConnection con, params SqlParameter[] pares)
{
return GetSqlDataReader(CommandType.Text, sql,out con, pares);
}
public bool MidfyDB(CommandType type, string sql, params SqlParameter[] pares)
{
bool falg = false;
SqlConnection con = GetConnection();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandType = type;
if (pares != null)
{
foreach (SqlParameter pare in pares)
{
cmd.Parameters.Add(pare);
}
}
SqlTransaction trans = null;
try
{
con.Open();
trans = con.BeginTransaction();
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
trans.Commit();
falg = true;
}
catch (Exception e)
{
trans.Rollback();
throw e;
}
finally
{
con.Close();
}
return falg;
}
public bool MidfyDB(string sql, params SqlParameter[] pares)
{
return MidfyDB(CommandType.Text, sql, pares);
}
/// <summary>
/// 查询聚合函数类
/// </summary>
/// <param name="type">数据库操作的类型 如:StoredProcedure(存储过程)、Text(文本)</param>
/// <param name="sql">数据库操作字符集</param>
/// <param name="paras">查询数据库时所用的参数</param>
/// <returns>object(一般为单个值)</returns>
public object GetScalar(CommandType type, string sql, params SqlParameter[] paras)
{
SqlConnection con = GetConnection();//创建数据集对象
SqlCommand cmd = new SqlCommand(sql, con);//操作数据库对象
cmd.CommandType = type;//数据库操作的类型
//如果参数不为空
if (paras != null)
{
//遍历参数数组
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);//给操作数据库对象加上参数
}
}
con.Open();//打开数据库连接
object obj = cmd.ExecuteScalar();//返回一个一行一列的植
con.Close();//关闭数据库连接
return obj;
}
public object GetScalar(string sql, params SqlParameter[] paras)
{
return GetScalar(CommandType.Text, sql, paras);
}
#region 数据填充DataTable
public static DataTable DataFill(SqlCommand cmd)
{
DataTable dt = new DataTable();
cmd.Connection = GetConnection();
SqlDataAdapter _da = new SqlDataAdapter(cmd);
_da.Fill(dt);
return dt;
}
#endregion
//public DataTable DateTel(string sql)
//{
// SqlConnection con = GetConnection();
// SqlCommand cmd = new SqlCommand(sql, con);
// SqlDataAdapter da = new SqlDataAdapter(cmd);
// DataTable dt = new DataTable();
// da.Fill(dt);
// return dt;
//}
internal DataSet GetDataSet(string sql, int UID)
{
throw new NotImplementedException();
}
public static SqlCommand GetCommand(string text)
{
SqlCommand cmdObject = new SqlCommand();
cmdObject.CommandText = text;
return cmdObject;
}
public static void PreparedCommand(SqlCommand cmd, SqlParameter[] pars)
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(p);
}
}
}
}
转载于:https://www.cnblogs.com/wuhuisheng/archive/2010/07/02/1770053.html
SqlServerDBHelper类相关推荐
- 反射应用二:利用反射加配置文件实现多数据库的访问
在上一篇文章中讲解了什么是反射,以及利用反射可以获取程序集里面的哪些内容.在平时的项目中,可能会遇到项目需要使用多种数据库,这篇文章中将会讲解如何利用反射实现访问多种数据库. 项目整体结构如下图所示: ...
- 自己搜集编写的Delphi 通用函数
{ ********************************************************************** } { Currency Common Functio ...
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
- IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...
- IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成
在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...
- javabean实体类与实体类之间的快速转换
一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- Idea groovy表生成实体类带注释
Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...
最新文章
- xuanke java_wangshangxuankexitong - WEB源码|JSP源码/Java|源代码 - 源码中国
- 计算机二级python基础知识总结-计算机二级python 知识点篇(程序的控制结构)...
- python中将字符变为大写_Python笔记(一)
- ROS Kinetic或ROS melodic下安装MoveIt!出现的问题:无法定位软件包 ros-kinetic-moveit-full或ros-melodic-moveit-full
- html登入弹框插件,基于jQuery的弹出框插件
- markdown-Macdown
- Java多线程面试题与答案
- 用Anaconda3搭建自己的TensorFlow环境
- 你不知道的Event Loop
- mysql运维技巧_​mysql初级运维使用技巧
- iOS 版微信可以改微信号;传腾讯计划入股爱奇艺;Qt 6.0 发布首个预览版本| 极客头条...
- 【转载】 C#使用Newtonsoft.Json组件来反序列化字符串为对象
- 用钩子程序实现根据一个表的字段更新另一个表的字段
- Python爬虫:使用Appium在移动端抓取微博数据
- vue h5微信公众号网页(总结)
- scan函数函数用法详解
- SecureCRT 8.3破解
- latex 定理环境,引理,定义,自定义 proof 环境
- R-S编码译码-缩短码(10,6)
- c++ vtable 深入解析
热门文章
- English最俗语法大全
- 获取两个数的最大值,判断是否相等;
- windows内核情景分析---进程线程1
- 153. 寻找旋转排序数组中的最小值 golang
- linux 线程学习初步01
- 超级计算机 极光,万亿次极光系列代数运算微处理器来袭,国产超算已经一骑绝尘?-控制器/处理器-与非网...
- 【剑指offer】_06 变态跳台阶
- C++起始(内联函数,宏的优缺点,const关键字,auto关键字(C++11)基于范围的for循环(C++11). 指针空值nullptr(C++11))
- Linux信号实现精确到微秒的sleep函数:通过sigsuspend函数解决时序竞态问题
- 【C/C++】关键字static