当一件事情被反复做了多次后。会想找一种办法来取代自己去做这个反复的动作。

敲代码也一样。

在程序中。对于反复的部分。假设是全然同样,那我们就会想着将其写成一个方法(过程、函数),放在一个具有权限的需求者都可以得着的地儿。

假设需求者在同一项目中。那么就把这种方法写成一个类。假设需求者在同一类中。那么就在本类中单独建一个方法写它。将同样的东西抽象出来。供多用户调用,就是用的抽象的思想。

不论什么一个系统,都会涉及数据的传输、操作。而数据的操作概括起来不外乎增删改查(CURD),如今的系统随着使用者的增多,越来越多的用户操作,大数据频繁操作。

假设採用原来的方式来写。复杂的系统会造成大量赘余的代码。

在类上方加入两条引用:

Imports System.Data.SqlClient       '引用SQL数据库连接
Imports System.Configuration '引用配置文件

建立一个操作数据库的SQLHelper类,

Public Class SQLHelper

    '获取配置文件里的连接字符串
Private ReadOnly strSQLConnection As String = ConfigurationManager.AppSettings("sqlConcectStr")
'定义连接
Dim connSQL As SqlConnection = New SqlConnection(strSQLConnection)
'定义cmd命令
Dim cmdSQL As New SqlCommand
' ///<summary>
' ///depiction:<该方法是sqlhelper类的初始化>
' ///</summary>
Public Sub New()
connSQL = New SqlConnection(strSQLConnection)
End Sub '' ///<summary>
'' ///depiction:<该方法是关闭数据库的连接>
'' ///<summary>
Private Sub CloseSQLConnection()
'推断数据库连接对象状态是否为断开。假设还没有断,则断开
If connSQL.State <> ConnectionState.Closed Then
connSQL.Close()
End If
End Sub ' ///<summary>
' ///depiction:<该方法是关闭数据库命令>
' ///</summary>
Private Sub CloseSQLCommand()
'假设命令存在。则关闭
If Not IsNothing(cmdSQL) Then
cmdSQL.Dispose() '销毁命令
cmdSQL = Nothing
End If
End Sub '///<summary>
''//运行增删改三个操作。(有參)返回值为Boolean类型,确认是否运行成功
'///</summary>
' ///<param name="strSql">须要运行语句。通常是Sql语句,也有存储过程</param>
' ///<param name="cmdType">推断Sql语句的类型,一般都不是存储过程</param>
' ///<returns>
' ///<返回Boolean,成功为true。否则为false>
' ///</returns>
Public Function ExecuteAddDelUpdate(ByVal strSql As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Boolean
'用传进的參数填充本类自己的cmd对象
cmdSQL.Parameters.AddRange(sqlParams) '參数传入
cmdSQL.CommandType = cmdType '
cmdSQL.Connection = connSQL '连接
cmdSQL.CommandText = strSql '查询语句 Try
connSQL.Open() '打开连接
Return cmdSQL.ExecuteNonQuery() '运行操作
cmdSQL.Parameters.Clear() '清除參数
Catch ex As Exception
Return False
Finally
Call CloseSQLConnection() '关闭连接
Call CloseSQLCommand() '结束命令
End Try End Function '///<summary>
'///运行增删改三个操作,(无參)返回值为Boolean类型,确认是否运行成功
''///</summary>
'///<param name="strSql">须要运行语句。通常是Sql语句,也有存储过程</param>
' ///<returns>
' ///<返回Boolean类型。成功为true,否则为false>
'///</returns>
Public Function ExecuteAddDelUpdate(ByVal strSql As String, ByVal cmdType As CommandType) As Boolean
'用传进的參数填充类自己的cmd对象
cmdSQL.CommandType = cmdType '将
cmdSQL.Connection = connSQL '建立连接
cmdSQL.CommandText = strSql '设置查询语句 Try
connSQL.Open() '打开连接
Return cmdSQL.ExecuteNonQuery() '返回sql运行后受影响的行数
Catch ex As Exception
Return False
Finally
Call CloseSQLConnection() '关闭连接
Call CloseSQLCommand() '结束命令
End Try End Function '///<summary>
''///运行查询操作,(有參)返回值为DataTable类型
'///</summary>
' ///<param name="strSql">须要运行语句。通常是Sql语句。也有存储过程</param>
'' ///<param name="cmdType">推断Sql语句的类型。一般都不是存储过程</param>
' ///<returns>
' ///<返回表>
' ///</returns>
Public Function ExecuteSelect(ByVal strSql As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim dtSQL As New DataTable
Dim dsSQL As New DataSet '用传进的參数填充本类自己的cmd对象
cmdSQL.Parameters.AddRange(sqlParams) '传入參数
cmdSQL.CommandType = cmdType
cmdSQL.Connection = connSQL '建立连接
cmdSQL.CommandText = strSql '查询语句 sqlAdapter = New SqlDataAdapter(cmdSQL) '实例化Adapter Try
sqlAdapter.Fill(dsSQL) '用Adater将DataSet填充
dtSQL = dsSQL.Tables(0) 'DataTable为DataSet的第一个表
cmdSQL.Parameters.Clear() '清除參数
Catch ex As Exception
MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
Finally
Call CloseSQLCommand()
End Try Return dtSQL End Function '///<summary>
''//运行查询操作,(无參)返回值为DataTable类型
''</summary>
' ///<param name="strSql">须要运行语句,通常是Sql语句,也有存储过程</param>
' ///<param name="cmdType">推断Sql语句的类型,一般都不是存储过程</param>
' ///<returns>
' ///<返回表>
' ///</returns>
Public Function ExecuteSelect(ByVal strSql As String, ByVal cmdType As CommandType) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim dtSQL As New DataTable
Dim dsSQL As New DataSet '用传进的參数填充类自己的cmd对象
cmdSQL.CommandText = strSql
cmdSQL.CommandType = cmdType
cmdSQL.Connection = connSQL
sqlAdapter = New SqlDataAdapter(cmdSQL) '实例化Adapter Try
sqlAdapter.Fill(dsSQL) '用Adaper将DataSet填充
dtSQL = dsSQL.Tables(0) 'DataTable为DataSet的第一个表
Catch ex As Exception
MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
Finally
Call CloseSQLCommand()
End Try Return dtSQL End Function End Class

sqlHelper的增删改查的更多相关文章

  1. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  2. sqlHelper做增删改查

    1.把数据库里面的数据显示出来 sqlHelper怎么用:[网上可以下载,需要可以找楼主要] 1.拷贝到项目,修改它的命名空间等于当前项目名称 2.数据库的连接信息,用户名,密码,登录方式等 < ...

  3. 初学SqlHelper - 实现增删改查

    //数据库连接字符串 public static readonly string constr = ConfigurationManager.ConnectionStrings["conns ...

  4. 求亲篇:数据库操作,SqlHelper,增删改查

    1.利用SqlHelper类 2.简单的数据绑定输出 string strSql = "select * from login"; DataTable dt = SqlHelper ...

  5. sqlhelper sqlparameter 实现增删改查

    这是sqlHelper.cs类,类内里封装了方法 using System; using System.Collections.Generic; using System.Linq; using Sy ...

  6. SqlHelper 增删改查

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

  7. asp.net下利用MVC模式实现Extjs表格增删改查

    在网上看到有很多人写extjs下的表格控件的增删改查,但是大多数都是直接从后台读取数据,很少有跟数据库进行交互的模式. 今天就来写一个这样的例子.欢迎大家交流指正. 首先简单介绍一下MVC模式,MVC ...

  8. ORM 实现数据库表的增删改查

    这次通过反射技术来实现一下数据库表的增删改查对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 注:引用时约束了以下几点: 数据 ...

  9. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

随机推荐

  1. UpdatePanel和jQuery不兼容

    在做项目中发现,在使用了UpdatePanel的地方,局部刷新后,jquery失效了. 后来网上一查,才发现,jquery中的ready事件会在DOM完全加载后运行一次,而当我们实用了UpdatePa ...

  2. Swift - 访问通讯录联系人(使用纯代码实现)

    1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码 ...

  3. Swift - 添加、修改、删除通讯录联系人

    使用AddressBook.framework框架,我们除了可以很方便的获取通信录里的联系人.同时,还能对通讯录进行新增.修改.删除联系人操作. (注意:这些操作同查询一样,首先需要发起授权请求) 1 ...

  4. WEB应用如何解决安全退出问题

    让我先来描述一下这个情况.一位用户第一次请求一个web页面,web应用弹出登录窗口提示用户登录,用户输入用户名,密码,验证码后服务器进行判断,正确后,返回用户请求的页面.     此时,用户有事需要离 ...

  5. 细节!重点!易错点!--面试java基础篇(二)

    今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...

  6. 自己用h5写的转盘。写贴上来吧。

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. VxWorks6.6 pcPentium BSP 使用说明(二):创建启动盘

    本篇介绍从Solaris.Linux.Windows或VxWorks创建VxWorks启动盘的方法. 从Solaris或Linux创建启动盘 使用Solaris或Linux自带的工具/usr/bin/ ...

  8. 微软推荐的130道ASP.NET常见面试题及答案

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...

  9. Windows 7中怎样找到真正的Administrator账户

    出于安全因素方面的考虑,默认情况下 Windows 7 的系统管理员 Administrator 账户处于禁用状态.需要使用时,开启它其实也很简单,并不需要复杂的操作. 方法一:从系统管理中启用Adm ...

  10. 我在使用的Chrome插件

    首先本人为一名Android程序员,故下面的很多插件很多都是关于开发辅助相关的.当然还有涉及到其他方面的插件,比如社交,浏览,工具等.以下按照字母排序. 1.AdBlock The most popu ...