一 SqlHelper不是写出来的
SqlHelper大家都在说如何写如何写这个类,其实它只是一个助手类,有的人还把他在分层写的时候划分为一层,但是有没有想过,这个东西其实他根本就不是写出来的是从你以前的代码中提炼出来的一个东西,为什么这会这样说,好吧来看看这个最简单的代码把(我也是一个菜鸟只是有了些感悟才写出来一点东西,希望大家手下留情)
这里的注释少了点,我向大家道歉。以后我会补上的。
Public Function ExecuteNonQuery() As Boolean
'定义一个连接数据库的字符串
Dim connStr As String
'这里是链接本地的数据库的字符串
connStr = "sever= .;database=newssystem;uid=sa;pwd=123456"
定义一个数据库连接的对象
Dim conn As SqlConnection
'实现数据的连接
conn = New SqlConnection(connStr)
'打开数据库
conn.open()
'定义Sql语句字符串的变量
Dim sql As String '向数据库中插入数据的Sql语句 sql = "insert into category [name] values ('你好!')" 定义一个执行Sql语句的对象 Dim cmd As SqlCommand '向对象里面传入参数 cmd = New SqlCommand(sql, conn) '定义一个整数类型的变量,执行完Sql语句所影响的行数 Dim res As Integer '执行Sql语句 res = cmd.ExecuteNonQuery()
'判断如果返回的数大于零证明添加成功 If res > 0 Then Return True End If '返回这个参数 Return res'关闭数据库
conn.close()
End Function
Public Function ExecuteNonQuery() As Boolean
Dim connStr As String
connStr = "sever= .;database=newssystem;uid=sa;pwd=123456"
Dim conn As SqlConnection
conn = New SqlConnection(connStr)
Dim sql As String
sql ="Delete From category Where Card_NO=1
Dim cmd As SqlCommand
cmd = New SqlCommand(sql, conn)
Dim res As Integer
res = cmd.ExecuteNonQuery()
If res > 0 Then
Return True
End If
Return res
End Function
其实怎么说呢,看看前面两个方法就知道为什么需要SqlHelper这个类了,但是SqlHelper这个助手类无非就是将D层对数据库的操作繁琐的类进行一下总结发现里面有好多重复的代码,于是人们就开始想办法将这些重复的东西从一般的面向过程的代码中拆分出来接下来就一步一步的进行SqlHelper的拆分把
二 总结:
1 数据库connStr连接字符串一样
2 都要连接数据库
3 都要执行Sql语句(无论是增删改)都要执行SQL语句
4 一个函数都要有一个返回值,而这个返回值就由最后的 res = cmd.ExecuteNonQuery()返回你执行完SQL语句以后数据库受影响的返回行数
然而不同的东西也就只是每次执行的SQL语句了接下来就让我们把SqlHelper这个助手类分离出来。
public class SqlHelper
1 Dim connStr As String
connStr = "sever=lizhihua-pc;database=newssystem;uid=sa;pwd=123456"
2 Dim conn As SqlConnection
conn = New SqlConnection(connStr)
3 Dim cmd As SqlCommand
cmd = New SqlCommand(sql, conn)
4
res = cmd.ExecuteNonQuery()
If res > 0 Then
Return True
End If
End class
这是一个类当然这些东西不可能就这命凌乱的摆上去这样就可以运行了,所以必须经过我们自己的加工。也就是将里面的东西组合起来形成方法这样这个SqlHelper的助手类也就完成了
三 实现助手类
public class SqlHelper
public Function GetConn() as Sqlconnection
Dim connStr As String
connStr = "sever=lizhihua-pc;database=newssystem;uid=sa;pwd=123456"
Dim conn As SqlConnection
conn = New SqlConnection(connStr)
if conn.state=connectionState.closed then
conn.open
End if
return conn
End Function
public Function ExecuteNonQuery(Byval sql as string ) as boolean
Dim flag as boolean
Dim res as ingter
Dim cmd As SqlCommand
cmd = New SqlCommand(sql, GetConn())
res = cmd.ExecuteNonQuery()
if res>0then
return true
End if
return flag
End Function
End class