ADO.NET辅助类
参考两位大神博客:
ADO.NET的五大核心类:https://blog.csdn.net/lxd8731247769/article/details/50659596
SQL语句操作增删查改助手类:https://www.cnblogs.com/loyung/p/5241509.html
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text;
namespace AdvancedFiltration
{
/// <summary>SQL数据库助手类</summary>
class AdoHelp
{
public string connectionString = "server=本地ip地址;uid=用户名;pwd=密码;database=数据库名";
/// <summary>执行不带参数的增删改SQL语句或存储过程 ,返回受影响的行数</summary>
/// 输入参数:数据库操作指令
public int ExecuteNonQuery(string cmdText)
{
int res = 0;//受影响的行数
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库链接
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net程序要执行的是一个普通的sql语句,是text型
res = cmd.ExecuteNonQuery();//执行Sql语句并受影响的行数
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return res;
}
/// <summary> 执行带参数的增删改SQL语句或存储过程,返回受影响的行数</summary>
/// 输入参数:数据库操作指令 参数集合Parameter[]
public int ExecuteNonQuery(string cmdText, params object[] paras)
{
int res = 0;//受影响的行数
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net接下来执行的是一个文本(text)是sql语句
cmd.Parameters.AddRange(paras);//添加参数数组
res = cmd.ExecuteNonQuery();//执行Sql语句并受影响的行数
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return res;
}
/// <summary> 执行不带参数的查询SQL语句或存储过程,返回DataTable对象</summary>
/// 输入参数:sql语言
public DataTable ExecuteQueryDataTable(string cmdText)
{
DataTable dt = new DataTable();//创建一个空表
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库链接
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net执行的是普通的sql语言(text)
//CommandBehavior.CloseConnection的作用:关闭SqlDataReader的时候,会关闭SqlConnection
using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);//填充dataTable所需的数据
}
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return dt;
}
/// <summary> 执行带参数的查询SQL语句或存储过程,返回DataTable对象</summary>
/// 输入参数:SQL语言
public DataTable ExecuteQueryDataTable(string cmdText, params object[] paras)
{
DataTable dt = new DataTable();//创建一个空的数据表
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net程序执行的是普通的SQL语句(text类型)
cmd.Parameters.AddRange(paras);//添加进参数数组
using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))//关闭SqlDataReader的时候,会关闭SqlConnection
{
dt.Load(sdr);//填充dataTable
}
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return dt;
}
/// <summary> 执行不带参数的查询SQL语句或存储过程,返回DataSet对象</summary>
/// 输入参数:SQL语句
public DataSet ExecuteQueryDataSet(string cmdText)
{
DataSet ds = new DataSet();//新建一个DataSet集合
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库链接
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net程序要执行的是一个普通的sql语句,text型
using (SqlDataAdapter da = new SqlDataAdapter(cmd))//数据适配器
{
da.Fill(ds, "ds");//填充dataSet
}
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return ds;
}
/// <summary> 执行带参数的查询SQL语句或存储过程,返回DataSet对象</summary>
public DataSet ExecuteQueryDataSet(string cmdText, params object[] paras)
{
DataSet ds = new DataSet();//创建Dataset集合
using (SqlConnection conn = new SqlConnection(connectionString))//连接数据库
{
try
{
conn.Open();//打开数据库链接
using (SqlCommand cmd = new SqlCommand(cmdText, conn))//执行数据库操作指令
{
cmd.CommandType = CommandType.Text;//告诉.net程序,执行的是一个普通的sql语句,是text型
cmd.Parameters.AddRange(paras);//添加输入参数数组
using (SqlDataAdapter da = new SqlDataAdapter(cmd))//新建数据适配器
{
da.Fill(ds, "ds");//填充DataSet
}
}
}
catch
{
}
finally
{
if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
{
conn.Close();//关闭与数据库的链接
}
}
}
return ds;
}
/// <summary>查询数据是否存在</summary>
/// 输入参数:不带参数的SQL查询语句
public bool ExecuteDataIsExistByData(string sqlStr)
{
bool iss = false;
DataSet ds = ExecuteQueryDataSet(sqlStr);//执行不带参数的SQL查询语句或存储方法,返回dataSet集合
for (int i = 0; i < ds.Tables.Count; i++)
{
if (ds.Tables[i].Rows.Count > 0) iss = true;
}
return iss;
}
/// <summary>查询数据是否存在 </summary>
public bool ExecuteDataIsExistByData(string sqlStr, params object[] paras)
{
bool iss = false;
DataSet ds = ExecuteQueryDataSet(sqlStr, paras);
for (int i = 0; i < ds.Tables.Count; i++)
{
if (ds.Tables[i].Rows.Count > 0) iss = true;
}
return iss;
}
/// <summary>查询增删改数据操作是否成功 </summary>
public bool ExecuteDataIsExistByInt(string sqlStr)
{
int ds = ExecuteNonQuery(sqlStr);//执行不带参数的sql查询语句,返回被影响的行数
bool iss = ds > 0 ? true : false;
return iss;
}
/// <summary>查询增删改数据操作是否成功 </summary>
public bool ExecuteDataIsExistByInt(string sqlStr, params object[] paras)
{
int ds = ExecuteNonQuery(sqlStr, paras);
bool iss = ds > 0 ? true : false;
return iss;
}
}
}