SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。
SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader
在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。在 SqlHelper 类中实现的方法包括: ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。 ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。 ExecuteDataset。此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。 ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。 ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。
使用App.config配置文件封装连接字符串,方便重复使用 --->添加App.conifg配置文件 --->Add : ConnectionString: --->添加引用
SqlHelper 类中的专用实用程序函数包括:
AttachParameters:该函数用于将所有必要的 SqlParameter 对象连接到正在运行的 SqlCommand。 AssignParameterValues:该函数用于为 SqlParameter 对象赋值。 PrepareCommand:该函数用于对命令的属性(如连接、事务环境等)进行初始化。 ExecuteReader:此专用 ExecuteReader 实现用于通过适当的 CommandBehavior 打开 SqlDataReader 对象,以便最有效地管理与阅读器关联的连接的有效期。
思维导图


示例代码
namespace BILL { /// <summary> /// 公有类:用户; /// </summary> public class User { /// <summary> /// 公有属性:用户号; /// </summary> public string No { get; set; }
/// <summary> /// 公有属性:密码; /// </summary> public string Password { get; set; }
/// <summary> /// 公有属性:是否完成登录; /// </summary> public bool HasLoggedIn { get; set; }
/// <summary> /// 公有属性:是否完成注册; /// </summary> public bool HasSignedUp { get; set; }
/// <summary> /// 公有属性:是否雷同; /// (即存在用户号雷同的用户) /// </summary> public bool IsDuplicate { get; set; }
/// <summary> /// 公有属性:消息; /// (用于返回验证结果) /// </summary> public string Message { get; set; } } }
namespace BILL { public partial class frm_SignUp : Form { /// <summary> /// 私有字段:用户; /// </summary> private User User;
/// <summary> /// 公有方法:构造函数; /// </summary> public frm_SignUp() { InitializeComponent(); this.StartPosition = FormStartPosition.CenterScreen; this.User = new User(); }
/// <summary> /// 私有方法:点击注册按钮; /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_SignUp_Click(object sender, EventArgs e) { if (this.txb_UserNo.Text.Trim() == "") { MessageBox.Show("用户号不能为空!"); this.txb_UserNo.Focus(); return; } if (this.txb_Password.Text.Trim() == "") { MessageBox.Show("密码不能为空!"); this.txb_Password.Focus(); return; } this.User.No = this.txb_UserNo.Text.Trim(); this.User.Password = this.txb_Password.Text.Trim(); UserBll.SignUp(this.User); MessageBox.Show(this.User.Message); } } }
/// <summary> /// 公有静态方法:注册; /// </summary> /// <param name="user">用户</param> /// <returns>是否注册成功</returns> public static bool SignUp(User user) { int rowAffected1 = UserDal.Insert(user); if (rowAffected1 == 1) { user.HasSignedUp = true; user.Message = "注册成功。"; } else { user.HasSignedUp = false; if (user.IsDuplicate) { user.Message = "您注册的用户号已存在,请重新输入!\n"; } user.Message += "注册失败!"; } return user.HasSignedUp; }

|