SqlHelper类案例示范


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

namespace DAL
{
/// <summary>
/// 数据层 - 数据库 操作类
/// </summary>
internal class SqlHelper

{
//获得配置文件的连接字符串
public readonly static string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

#region 01.查询数据表 static DataTable ExecuteDataTable(string strSql, params SqlParameter[] paras)
/// <summary>
/// 查询数据表
/// </summary>
/// <param name="strSql">sql语句</param>
/// <param name="paras">参数数组</param>
/// <returns>数据表</returns>
public static DataTable GetDataTable(string strSql, params SqlParameter[] paras)
{
//创建数据库连接对象
SqlConnection conn = new SqlConnection(strConn);
//创建适配器对象(sql命令,连接通道)
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
//为适配器添加参数
da.SelectCommand.Parameters.AddRange(paras);
//创建数据表对象
DataTable dt = new DataTable();
//适配器 读取数据库,并将查询的结果 装入程序的 dt里
da.Fill(dt);
//返回数据表
return dt;
}
#endregion

#region 02.执行非查询语句 int ExcuteNonQuery(string strSql, params SqlParameter[] paras)
/// <summary>
/// 执行非查询语句)
/// </summary>
/// <param name="strSql">sql语句</param>
/// <param name="paras">参数数组</param>
/// <returns>受影响的行数</returns>
public static int ExcuteNonQuery(string strSql, params SqlParameter[] paras)
{
int res = -1;
//创建连接通道
using (SqlConnection conn = new SqlConnection(strConn))
{
//创建命令对象(sql语句,连接通道)
SqlCommand cmd = new SqlCommand(strSql, conn);
//添加参数
cmd.Parameters.AddRange(paras);
conn.Open();
//执行非查询SQL命令
res = cmd.ExecuteNonQuery();
}
return res;
}
#endregion

#region 03.执行多条非查询语句 public static int ExcuteNonQuerys(string[] strSqls, SqlParameter[][] parasArr)
/// <summary>
/// 执行多条非查询语句
/// </summary>
/// <param name="strSql">sql语句数组</param>
/// <param name="paras">参数二维数组</param>
/// <returns>受影响的行数</returns>
public static int ExcuteNonQuerys(string[] strSqls, SqlParameter[][] parasArr)
{
int res = 0;
//创建连接通道
using (SqlConnection conn = new SqlConnection(strConn))
{
//打开数据库连接
conn.Open();
//创建事务
SqlTransaction tran = conn.BeginTransaction();
//创建命令对象
SqlCommand cmd = conn.CreateCommand();
//为命令对象指定事务
cmd.Transaction = tran;
try
{
//循环执行sql语句
for (int i = 0; i < strSqls.Length; i++)
{
//获得要执行的sql语句
string strSql = strSqls[i];
//为命令对象指定 此次执行的 sql语句
cmd.CommandText = strSql;
//添加参数
if (parasArr.Length > i)//如果 参数2维数组的长度大于当前循环的下标
{
cmd.Parameters.AddRange(parasArr[i]);//将 交错数组 的第一个元素(其实也是一个数组,添加到参数集合中)
}
res += cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
tran.Commit();//提交事务
}
catch (Exception ex)
{
res = 0;
tran.Rollback();//回滚事务
throw ex;
}
}
return res;
}
#endregion

#region 04.执行Scalar查询单个值 public static int ExcuteScalar(string strSql, params SqlParameter[] paras)
/// <summary>
/// 执行Scalar查询单个值
/// </summary>
/// <param name="strSql">sql语句</param>
/// <param name="paras">参数数组</param>
/// <returns>返回查询结果</returns>
public static int ExcuteScalar(string strSql, params SqlParameter[] paras)
{
int res = -1;
//创建连接通道
using (SqlConnection conn = new SqlConnection(strConn))
{
//创建命令对象(sql语句,连接通道)
SqlCommand cmd = new SqlCommand(strSql, conn);
//添加参数
cmd.Parameters.AddRange(paras);
conn.Open();
//将查询结果转换为int类型并返回
res = Convert.ToInt32(cmd.ExecuteScalar());
}
return res;
}
#endregion

#region 05.执行分页存储过程 public static DataTable GetPageList(int pageIndex, int pageSize, out int pageCount, out int rowCount)
/// <summary>
///执行特殊的分页存储过程
/// </summary>
/// <param name="userID">用户ID</param>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">页容量</param>
/// <param name="pageCount">总页数--输出</param>
/// <param name="rowCount">总行数--输出</param>
/// <returns></returns>
public static DataTable GetPageListByProc(int userID, int pageIndex, int pageSize, out int rowCount, out int pageCount)
{
DataTable dt = new DataTable();
//创建连接通道
using (SqlConnection conn = new SqlConnection(strConn))
{
//创建适配器对象
SqlDataAdapter da = new SqlDataAdapter("GetPageList", conn);
//设置 命令类型 为存储过程
da.SelectCommand.CommandType = CommandType.StoredProcedure;
//设置 参数
da.SelectCommand.Parameters.AddWithValue("@pageIndex", pageIndex);//当前页码
da.SelectCommand.Parameters.AddWithValue("@pageSize", pageSize);//页容量
da.SelectCommand.Parameters.AddWithValue("@userID", userID); //用户ID

//在存储过程中 输出参数
da.SelectCommand.Parameters.Add(new SqlParameter("@rowCount", SqlDbType.Int));
da.SelectCommand.Parameters.Add(new SqlParameter("@pageCount", SqlDbType.Int));
//将后面两个参数 设置为 输出类型
da.SelectCommand.Parameters[3].Direction = ParameterDirection.Output;
da.SelectCommand.Parameters[4].Direction = ParameterDirection.Output;
//执行 并将查询到的 结果 赋给 数据表对象
da.Fill(dt);
//获得 存储过程 返回的 输出参数
rowCount = Convert.ToInt32(da.SelectCommand.Parameters[3].Value);
pageCount = Convert.ToInt32(da.SelectCommand.Parameters[4].Value);
}
//返回数据表
return dt;
}
#endregion

#region 06.执行存储过程 public static DataTable ExecuteProcedure(string procedure, params SqlParameter[] paras)
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procedure">存储过程名称</param>
/// <param name="param">参数数组</param>
/// <returns>数据表</returns>
public static DataTable ExecuteProcedure(string procedure, params SqlParameter[] paras)
{
//创建连接通道
SqlConnection conn = new SqlConnection(strConn);
//创建适配器对象(sql命令,连接通道)
SqlDataAdapter da = new SqlDataAdapter(procedure, conn);
//设置适配器的命令类型为存储过程
da.SelectCommand.CommandType = CommandType.StoredProcedure;
//为适配器添加参数
da.SelectCommand.Parameters.AddRange(paras);
//创建数据表对象
DataTable dt = new DataTable();
//填充数据集
da.Fill(dt);
//返回数据表
return dt;
}
#endregion

/***********************分页存储过程SQL代码***********************
CREATE procedure usp_GetPageList
@PageIndex int = 1,
@PageSize int = 10,
@PageCount int output,
@RowCount int output
as
begin
select * from (Select ROW_NUMBER() over(order by ID) as num, * from Student) as temp where num between (@pageIndex-1) * @pageSize + 1 and @pageSize + 1
select @RowCount = COUNT(*) from Student
set @PageCount = Ceiling(@RowCount/@PageSize)
end
*****************************************************************/
}

SqlHelper类案例示范

时间: 2024-11-10 15:09:59

SqlHelper类案例示范的相关文章

分享一个简单的简单的SQLHelper类

分享一个简单的简单的SQLHelper类,代码如下: 1 class SqlHelper 2 { 3 public static readonly string connstr = 4 ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; 5 6 public static int ExecuteNonQuery(string cmdText, 7 params SqlParameter[] para

ASP.NET MVC 排球计分程序 (四)实体类和SqlHelper类的设计

整体解决方案的图如下: . 在Model里添加一个叫PersonA的类 public class PersonA { public int id { get; set; } public string name { get; set; } } 添加一个叫PersonB的类 public class PersonB { public int id { get; set; } public string name { get; set; } } 添加一个叫ScoreA的类 public class

sqlhelper类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace Com.LingHu.Db { /// <summary> /// XX出品 /// 这个类是用来简化ADO.NET操作的. /// </summary> public class SqlHelpe

C#封装CRUD到SqlHelper类解读

1.简单说明一下,一般情况下,数据库连接字符串是在App.config文件中进行配置,然后再在代码中进行引用.因此,我们在这里先看一下App.config文件. 首先看需要添加的内容: 参数说明: name:表示键值,在代码中需要通过这键值来找到对应的连接字符串信息. connectionString:链接数据库的字符串信息.Server:数据库服务器,Database:数据库,uid:数据库账户名,pwd:数据库密码 <?xml version="1.0" encoding=&

C#操作数据库SqlHelper类

/* 创建者:菜刀居士的博客 * 创建日期: 2014年09月01号 * 功能:SqlHelper类,操作数据库 * */ namespace Net.String.ConsoleApplication { using System; using System.Data; using System.Data.SqlClient; public sealed class SqlHelper { private SqlHelper() { } public static int ExecuteNon

SqlHelper类(V1)

1 static class SqlHelper 2 { 3 //app.config文件的继承: 4 5 public static readonly string connstr = 6 ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; 7 8 public static int ExecuteNonQuery(string sql, 9 params SqlParameter[] paramet

强大的SQLHelper类

在做机房收费系统的时候,曾经使用过Sqlhelper,当时对此内容理解不是很好,参照的是下篇的博客: vb.net-SQLHelper类的使用 而做过之后,当再次回首往事的时候,发现这个SQLHelper类并 不是那么的强大.其实可以在多扩充些.并且不好的地方是没有加入安全的事务机制,在此小编在前人的基础上,模仿别人写了一个类似的Sqlhelper.先看下类图. 首先看一下此类,一共包含了13中方法,是对数据库增删改查的扩充,方便了用户的各种操作.比如当查询数据库的时候,可以返回DataRow.

JAVA WEB SQLHelper类的封装

在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了一个SQLHelper,虽然下面用的这个不是很好,但是基本上满足需求, 因为似乎所有类都能转换为String,所以就用String数组来补充sql语句中的可变参数,但是有 一个问题,就是在调用的时候第二个参数必须为null,或者String数组,如果只有一个参数,也 要用String数组的形式传进去

分装一个SqlHelper类方便使用,着重理解params Sql

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Configuration; using _17