一 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