using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient; namespace Reservation.DAL
{
public class SqlHelper
{
/// <summary>
/// 自定义数据库连接字符串
/// </summary>
public static string ConnString = @"Data Source=.;Initial Catalog=DB_Date_Plan; User ID=sa;Pwd=111111";
/// <summary>
/// 应用程序下获取连接字符串
/// </summary>
//public static string ConnString
//{
// get { // return System.Configuration.ConfigurationManager.ConnectionStrings["connstring"].ToString();
// }
//} /// <summary>
/// 执行一个Sql语句返回受影响的行数
/// </summary>
/// <param name="sql">insert,update,delete或相关的存储过程</param>
/// <param name="type">命令类型:SQL语句还是存储过程</param>
/// <param name="pars">SQL语句所需要的参数</param>
public static int ExcuteSQLReturnInt(string sql, CommandType type, params SqlParameter[] pars)
{
//定义连接对象
SqlConnection conn = new SqlConnection(ConnString);
//判断连接对象的状态,并且打开
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
try
{
//实例化命令对象
SqlCommand cmd = new SqlCommand(sql, conn);
//判断CommandType类型是否是SQL语句还是存储过程
cmd.CommandType = type;
if (pars != null && pars.Length > )
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(p);
}
}
//调用方法执行SQL语句或存储过程
int count = cmd.ExecuteNonQuery();
return count;
}
catch (Exception ex)
{
return ;
}
finally
{
//记得要关闭连接
conn.Close();
}
} /// <summary>
/// 执行一个Sql语句或存储过程,返回一条记录,sqldataReader
/// </summary>
/// <param name="sql">select语句,或相关的存储过程</param>
/// <param name="type">指定命令类型,sql语句还是存储过程,默认的是sql语句</param>
/// <param name="pars">参数的集合</param>
/// <returns></returns>
public static SqlDataReader ExcuteSqlReturnReader(string sql, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand(sql, conn);
if (pars != null && pars.Length > )
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(p);
}
}
cmd.CommandType = type;
//当reader.close(),也就是关闭了datareader时,CommandBehavior.CloseConnection 也会关闭连接!
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
} /// <summary>
/// 执行一个sql语句或存储过程,不带参数的!返回一天记录 sqldataReader
/// </summary>
/// <param name="sql"></param>
/// <param name="type"></param>
/// <returns></returns>
public static SqlDataReader ExcuteSqlReturnReader(string sql, CommandType type)
{
SqlConnection conn = new SqlConnection(ConnString);
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = type;
//当reader.close(),也就是关闭了datareader时,CommandBehavior.CloseConnection 也会关闭连接!
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
} /// <summary>
/// 执行一个Sql语句或存储过程,返回一个数据集,dataset
/// </summary>
/// <param name="sql">select语句或相关的存储过程</param>
/// <param name="type">命令类型</param>
/// <param name="pars">命令类型</param>
/// <returns>DataSet</returns>
public static DataSet SelectSqlReturnDataset(string sql, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);
//数据集识别器对象SqlDataAdapter 会自动打开数据库链接!
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
if (pars != null && pars.Length > )
{
foreach (SqlParameter p in pars)
{
sda.SelectCommand.Parameters.Add(p);
}
}
sda.SelectCommand.CommandType = type;
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
} /// <summary>
/// 执行一个sql语句返回一个数据表对象
/// </summary>
/// <param name="sql">select</param>
/// <param name="type">命令类型</param>
/// <param name="pars">参数集合</param>
/// <returns>DataTable</returns>
public static DataTable SelectSqlReturnDataTable(string sql, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
if (pars != null && pars.Length > )
{
foreach (SqlParameter p in pars)
{
sda.SelectCommand.Parameters.Add(p);
}
}
sda.SelectCommand.CommandType = type;
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
} //*******************************************************************
//SelectSqlReturnDataTable方法的重载,不传参数的情况下
/// <summary>
/// 执行一个sql语句返回一个数据表对象,不传参数
/// </summary>
/// <param name="sql">select</param>
/// <param name="type">命令类型</param>
/// <returns></returns>
public static DataTable SelectSqlReturnDataTable(string sql, CommandType type)
{
SqlConnection conn = new SqlConnection(ConnString);
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
sda.SelectCommand.CommandType = type;
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
} /// <summary>
/// 执行一个sql语句或相关的存储过程,返回一个值
/// </summary>
/// <param name="sql">select count(*) from tablename where ....</param>
/// <param name="type">命令类型</param>
/// <param name="pars">所需的参数</param>
/// <returns>object</returns>
public static object selectSqlReturnObject(string sql, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
try
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = type;
if (pars != null && pars.Length > )
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(p);
}
}
object obj = cmd.ExecuteScalar();
return obj;
}
catch (Exception ex)
{
return null;
}
finally
{
conn.Close();
}
} /// <summary>
/// 执行一个sql语句或相关的存储过程,返回一个值,不传参数
/// </summary>
/// <param name="sql"></param>
/// <param name="type"></param>
/// <returns></returns>
public static object selectSqlReturnObject(string sql, CommandType type)
{
SqlConnection conn = new SqlConnection(ConnString);
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
try
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = type;
object obj = cmd.ExecuteScalar();
return obj;
}
catch (Exception ex)
{
return null;
}
finally
{
conn.Close();
}
} }
}

ado.net SqlHelp类的更多相关文章

  1. ADO.NET帮助类DBHelper

    一. DBHelper帮助类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  2. ado.net 实体类_数据访问类

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  3. ADO.NET 实体类和数据访问类

    SQL数据库字符串注入攻击:需要使用cmd.Parameters这个集合占位符: @key 代表这个位置用这个占位符占住了 Parameters这个集合中将此占位符所代表的数据补全 cmd.Param ...

  4. ADO.net 实体类 、数据访问类

    程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...

  5. ADO,NET 实体类 和 数据访问类

    啥也不说,看代码. --SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) pr ...

  6. 连接SQLite 创建ADO.net实体类

    0.开发环境 win10,vs2013-x64 1.安装: sqlite-netFx451-setup-bundle-x86-2013-1.0.102.0.exe 注意事项:选在VisualStudi ...

  7. ADO.NET工具类(三)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  8. ADO.NET工具类(二)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. ADO.NET工具类(一)

    using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...

随机推荐

  1. SRS之HLS部署实例源码分析

    1. 综述 SRS 关于 HLS 的具体配置可见: HLS部署实例 SRS 关于 hls 的配置文件内容如下: listen 1935; max_connections 1000; daemon of ...

  2. PHP 多条件查询(汽车表)

    主页面: <h1>汽车查询页面</h1> <br /> <?php include("./DBDA.class.php"); $db = ...

  3. Windows 下的SSH客户端

    在日常Linux系统管理中,会使用SSH工具连接服务器,之所以SSH连接主要是为了安全,传统的telnet连接方式是以明文传输,很不安全,网络中如果又热窃听抓包,密码将要泄露.在众多SSH连接中,Pu ...

  4. dom4j工具对XML写入修改删除操作实现

    import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import ...

  5. Java Web使用过滤器防止Xss攻击,解决Xss漏洞

    转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687   版权声明:本文为博主原创文章,转载请注明出处!有时候 ...

  6. U盘文档自动备份

    检测到插入U盘即复制其中doc.ppt文件到指定目录 (ucopy.bat): @echo off :again del /Q /f "%temp%\copy.tmp" >n ...

  7. .net core 入门一

    官网教程:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-3.0&tabs=wind ...

  8. java文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...

  9. 059. Spiral Matrix II

    题目链接:https://leetcode.com/problems/spiral-matrix-ii/description/ Given a positive integer n, generat ...

  10. sshpass密码

    使用sshpass sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path ...