SqlHelper 类实现详细信息

Web一般处理程序-编写网站处理页面 一,建立Study_ASPNET数据库 设置数据库用户名:sa 密码:123456 后期需用到 create Database Study_ASPNET go USE Study_ASPNET go create table EmployeeInfo( ID int IDENTITY(1,1) NOT NULL Primary Key, [name][nvarchar](32) NOT NULL, [Age] [tinyint] NULL, [Phone][nchar](11)NULL, [Com 阅读详情

SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。

在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。在 SqlHelper 类中实现的方法包括:

ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。
ExecuteDataset。此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。
ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。
ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。
除了这些公共方法外,SqlHelper 类还包含一些专用函数,用于管理参数和准备要执行的命令。不管客户端调用什么样的方法实现,所有命令都通过 SqlCommand 对象来执行。在 SqlCommand 对象能够被执行之前,所有参数都必须添加到 Parameters 集合中,并且必须正确设置 Connection、CommandType、CommandText 和 Transaction 属性。SqlHelper 类中的专用函数主要用于提供一种一致的方式,以便向 SQL Server 数据库发出命令,而不考虑客户端应用程序调用的重载方法实现。SqlHelper 类中的专用实用程序函数包括:

AttachParameters:该函数用于将所有必要的 SqlParameter 对象连接到正在运行的 SqlCommand。
AssignParameterValues:该函数用于为 SqlParameter 对象赋值。
PrepareCommand:该函数用于对命令的属性(如连接、事务环境等)进行初始化。
ExecuteReader:此专用 ExecuteReader 实现用于通过适当的 CommandBehavior 打开 SqlDataReader 对象,以便最有效地管理与阅读器关联的连接的有效期。

SqlHelper体验谈:

以下载自CEOCIO(MVP/优快云_WEB开发版主)的Blog:

微软提供的Data Access Application Block中的SQLHelper类中封装了最常用的数据操作,各个使用者调用他而写的代码也有很大区别。

对于一个返回DataSet的方法我原来是这样写的:

public DataSet GetDepartmentMemberList(int departmentID)
...{
try
...{
string sql = "OA_Department_GetDepartment_Members";
string conn = ConfigurationSettings.AppSettings["strConnection"];
SqlParameter[] p =
...{
SqlHelper.MakeInParam("@departmentID",SqlDbType.Int,4,departmentID)
};
DataSet ds = SqlHelper.ExecuteDataset(conn,CommandType.StoredProcedure,sql,p);
return ds;
}
catch(System.Data.SqlClient.SqlException er)
...{
throw new Exception(er.Message);
}
}

现在我是这样来写的:

//连接字符串
private string _connectionString = ConfigurationSettings.AppSettings["strConnection"];
public string ConnectionString
...{
get ...{return this._connectionString;}
set ...{this._connectionString = value;}
}

public DataSet GetNewsToIndexPage(int NewsTypeID)
...{
return GetDataSet("yzb_GetNewsToIndexPage",GetNewsToIndexPage_Parameters(NewsTypeID));
}

//设置存储过程参数
private SqlParameter[] GetNewsToIndexPage_Parameters(int NewsTypeID)
...{

SqlParameter[] p =
...{
SqlHelper.MakeInParam("@NewsTypeID",SqlDbType.Int,4,NewsTypeID)
};
return p;
}

//这里才真正调用SqlHelper
private DataSet GetDataSet(string sql, params SqlParameter[] p)
...{
return SqlHelper.ExecuteDataset(ConnectionString,CommandType.StoredProcedure,sql,p);
}
代码更加灵活,更加安全了:P

做为一个懒人,大笨狼我经常这样写:

System.Data.DataTable dt=SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING_NON_DTC,CommandType.Text,sql).Tables[0];

直接返回DataTable, 返回表集合基本不用,只返回一个table用于绑定。

string conn = ConfigurationSettings.AppSettings["strConnection"];
我写在SqlHelper.CONN_STRING_NON_DTC里面

MakeInParam代码烦琐,如果查询输入条件不可能有组合SQL,
我直接exec pronamr paraargs

如果查询输入条件存在安全问题,或者带返回参数
再用SqlParameter[] queryParam=new SqlParameter[] ...{
new SqlParameter("@UserID",SqlDbType.Int)
};
queryParam[0].Value=this.UserID;
文章出处:http://www.diybl.com/course/4_webprogram/asp.net/netjs/20071020/78594.html

SQLHelper类方法介绍及简单使用 引言做.NET开发的话,想必大家对SQLHelper.cs这个类都不会陌生。很早之前微软就发布了SQLHelper.cs,如果想要了解它的详细信息可以参考我的另一篇博客:http://blog.youkuaiyun.com/u013201439/article/details/50700111。 SQLHelper.cs类中的方法有很多,刚接触的话会感觉无从下手,不知道从哪儿看起,今天的文章主要介绍SQLHe 阅读详情

相关推荐

C# SqlHelper类的使用

SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件,包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码,它将每次连接都要写的代码封装成方法,把要执行的SQL语句通过参数传进去,如数据库连接字符串,SQL参数等,就可以访问数据库了。 2.SqlHelper类的编写不详细说,有完整的现...

xzya321的博客 6149

SqlHelper 详解(转)

  SqlHelper 类实现详细信息SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。 在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发...

weixin_33943836的博客 264

point transformer v3结构

分割结构: embedding->enc->dec embedding->enc0->enc1->enc2->enc3->enc4->dec3->dec2->dec1->dec0 embedding ->block0->block1 ->dow->block0->block1 ->dow->block0->block1 ->dow->block0->block1-&gt

weixin_45625419的博客 582

通过sqlHelper访问数据库,查询数据

使用最简单的方式进行对数据库访问,并且查询返回需要的数据;如下步骤: 一、web.config 配置 <connectionStrings>   <add name="ABConnection" connectionString="Data Source=.;Initial Catalog=xx_Db;User ID=xx;Password=789xxxxxx...

weixin_30735391的博客 465

URP Shader编程之自定义后处理单pass渲染(URP 14.x)

❌ 不要在里拿✅ 只在里拿RendererFeature 生命周期RTHandle 设计Blitter 的真实语义Shader 输入来源。

qq1342753906的博客 608

基于单片机控制双向可控硅灯光强度设计

*单片机设计介绍,基于单片机控制双向可控硅灯光强度设计。

QQ2193276455的博客 2457

机房重构——SQLHelper

SQLHelper简介 SQLHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法。SQLHelper用于简化你重复写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等。SqlHelper封装后通常只是需要给方法传入一些参数如数据库连接字符串,SQL参数,就可以访问数据库了。 ’SQLHelper就是将数据...

你要十分努力,才能看起来毫不费力! 409

微信小程序 - 实现身份证OCR识别人像面与国徽面并提取字段信息,详解从手机相册选取或打开摄像头拍照上传身份证正反面图片ocr文字识别数据填充表单(提供免费纯前端ocr识别插件+百度OCR识别API)

微信小程序身份证识别,微信小程序身份证拍照、上传并OCR识别,微信小程序实现OCR扫描识别,微信小程序识别身份证免费插件,微信小程序实现身份证识别功能。ocr识别插件。微信身份证拍照后进行ocr识别,微信小程序OCR扫描识别身份证,OCR身份证实名认证+图片上传+拍照上传图片,微信小程序之身份证照片正反上传,小程序OCR身份证识别,微信小程序实现文字识别-ocr插件,微信小程序利用百度AI实现扫描身份证获取信息功能,基于微信小程序OCR插件实现身份证拍照、上传并OCR识别的示例demo,将上传的照片传到服务

🏆 前端领域优质创作者 8136

sqlhelper 类实现详细信息

您是否正在从事 .net 应用程序数据访问代码的设计和开发?您是否觉得自己总是在反复编写相同的数据访问代码?您是否曾经将数据访问代码包装在 helper 函数中,以便能够在一行中调用存储过程?如果是,那么 microsoft® data access application block for .net 正是为您设计的。data access application block 将访问 m

jefflam的专栏 779

Vue3 - Vite运行打包时Uncaught ReferenceError: process is not defined(解决vue3+vite报错process is not defined)

vue3,vite,vue3+vite报错,process,UncaughtReferenceError:processisnotdefined,浏览器控制台报错processisnotdefined解决方法,vue3如何解决报错,vite报错怎么办,前端打包UncaughtReferenceError:processisnotdefined,npmrunbuild打包报错,vite打包时出现错误,vue3打包运行找不到process,热更新会报错UncaughtRefer

🏆 前端领域优质创作者 7738

智能车图像处理11-进阶篇3--中线累积差值的统计

中线累积差值的统计在后面判断小S,以及长直道的时候都有用到,关键点在于中线的跳变 第12 - 13 行:comulants1 和comlants2代表的是两种不同的累差,取的行数不同 第14-17 行:comulants2取6到25行,其实就是My_Abs(LCenter[i], LCenter[i - 1])的累加 第18-21 行:comulants1去第1到40行 第27- 行: 计算了一下右线的开始于最终结束行,这里判断R_black是否为0,是和中线的提取中g

taiyuezyh的博客 3827

SQLhelper使用事务和参数

事务:string myConnectString = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30";SqlConnection myConnection = new SqlConnection(myConnectStri...

weixin_33845477的博客 177

YOLOv13涨点改进| CVPR 2026 |独家创新首发、主干改进篇 |利用RIS-PiDiNet主干让YOLOv13更加强大!适合遥感目标检测、小目标检测、旋转目标检测,变化检测,图像分割涨点

🔥本文提出了一种改进的RIS-PiDiNet主干网络,通过引入几何先验构建几何一致性检测器,显著提升了模型在任意方向、结构规则目标场景下的检测性能。包含两个核心模块:S-PDC利用极谐变换的谐波核建模目标结构对称性,RIS-PDC通过SO(2)群平均实现旋转不变性。网络采用基于RIS-block的主干结构并融合轻量级LBP特征,增强了细粒度结构表达能力。实验表明,该方法特别适用于遥感和复杂几何分布场景,能有效提升目标检测的鲁棒性和精度。文章还详细介绍了如何将RIS-PiDiNet集成到YOLOv13框架

Ai缝合怪、助力小伙伴高效发论文 90

EA教程 (四) SQLHelper类

今天我们主要讲述如何用EA来做SQLHelper层的编写,首先看一下完成之后的SqlHelper图,其中我们重点关注圈注中的内容   这张图中用的单例模式的具体代码和两个类之间的关系,可以参考我之前写的一篇关于单例的博客中的第五种方式,如下图所示 链接地址 http://blog.youkuaiyun.com/zs15932616453/article/details/72031

455

【YOLOv10改进[Backbone]】使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发

使用ADNet改进YOLOv10在噪声干扰下的目标检测效果(图像去噪)+ 含全部代码和详细修改方式 + 手撕结构图 + 全网首发 + 遥遥领先

静谧、淡雅 2858

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

更加极值的数据库封装, 跨表查询

定义StudentExt, 包含Student , StudentClass ,ScoreList using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Dotnet { public class StudentExt { public Student ObjStudent {

helldoger的博客 105

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C#---CRUD工具类2

1界面

weixin_47328424的博客 385

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

如何解决

namespace BookWeb.Admin.Page{    public partial class UserInfo : System.Web.UI.Page    {        public List&lt;UserInfo&gt; UiList = new List&lt;UserInfo&gt;();        protected void Page_Load(object ...

weixin_42610347的博客 115

SqlHelper类详解

SqlHelper 类实现详细信息 SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。  在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此

itmaxin的专栏 2420

SqlHelper类的使用

机房重构进行了一小阶段,刚开始敲代码的时候,实现每一个功能都要在D层类中写一次数据据库连接(SqlConnection),SqlCommand,SqlDataReader语句,感到相当地麻烦。遇到这个问题后,就想到了面向对象的封装性,把D层中重复的SQL语句封装起来,以提高代码的复用性。通过上网查资料,知道了SqlHelper类和其使用方法。     SqlHelper类将数据库连接(SqlCo

炸丸儿 2254

SqlHelper类(C#)

大神可以绕道了... 目的:搜集SqlHelper类 自己写的一个SQLHelper类,如下: 编辑App.config节点,添加<connectionStrings>节点,并根据实际填上相应的参数 <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> ...

zxy13826134783的博客 4635
上一篇: FlagsAttribute属性在enum中的应用
下一篇: asp中Execute 方法 (ADO Connection)参数
willonboy
博客等级 码龄18年 9粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值