SQL 語句的 更新 插入 查找 刪除
包括有參數的、無參數的更新 插入 查找 刪除 都包括了
下面是代碼的詳細解釋,現在先看看明白,等到以后寫的時候就方便多了。
“`
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration ‘必須要在管理器中添加援用
”’
”’ SqlHelper類是專門提供給廣大用戶用于高性能、可升級和最好練習的sql數據操作
”’
”’
Public Class SqlHelper
‘定義變量
‘取得數據庫的連接字符串
Private ReadOnly strConnection As String = ConfigurationManager.AppSettings(“ConnStr”)
‘設置連接
Dim conn As SqlConnection = New SqlConnection(strConnection)
‘定義cmd命令
Dim cmd As New SqlCommand
''' <summary>
''' 履行增刪改3個操作,(有參)返回值為Boolean類型,確認是不是履行成功
''' </summary>
''' <param name="cmdText">需要履行語句,1般是Sql語句,也有存儲進程</param>
''' <param name="cmdType">判斷Sql語句的類型,1般都不是存儲進程</param>
''' <param name="paras">參數數組,沒法確認有多少參數</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As Integer
'將傳入的值,分別為cmd的屬性賦值
cmd.Parameters.AddRange(paras) '將參數傳入
cmd.CommandType = cmdType '設置1個值,解釋cmdText
cmd.Connection = conn '設置連接,全局變量
cmd.CommandText = cmdText '設置查詢的語句
Try
conn.Open() '打開連接
Return cmd.ExecuteNonQuery() '履行增刪改操作
cmd.Parameters.Clear() '清除參數
Catch ex As Exception
Return 0 '如果出錯,返回0
Finally
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try
End Function
''' <summary>
''' 履行增刪改3個操作,(無參)
''' </summary>
''' <param name="cmdText">需要履行語句,1般是Sql語句,也有存儲進程</param>
''' <param name="cmdType">判斷Sql語句的類型,1般都不是存儲進程</param>
''' <returns>Interger,受影響的行數</returns>
''' <remarks>2013年2月2日8:19:59</remarks>
Public Function ExecAddDelUpdateNo(ByVal cmdText As String, ByVal cmdType As CommandType) As Integer
'為要履行的命令cmd賦值
cmd.CommandText = cmdText '先是查詢的sql語句
cmd.CommandType = cmdType '設置Sql語句如何解釋
cmd.Connection = conn '設置連接
'履行操作
Try
conn.Open()
Return cmd.ExecuteNonQuery()
Catch ex As Exception
Return 0
Finally
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try
End Function
''' <summary>
''' 履行查詢的操作,(有參),參數不限
''' </summary>
''' <param name="cmdText">需要履行語句,1般是Sql語句,也有存儲進程</param>
''' <param name="cmdType">判斷Sql語句的類型,1般都不是存儲進程</param>
''' <param name="paras">傳入的參數</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim dt As New DataTable
Dim ds As New DataSet
'還是給cmd賦值
cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = conn
cmd.Parameters.AddRange(paras) '參數添加
sqlAdapter = New SqlDataAdapter(cmd) '實例化adapter
Try
sqlAdapter.Fill(ds) '用adapter將dataSet填充
If ds.Tables.Count = 0 Then
Else
dt = ds.Tables(0) 'datatable為dataSet的第1個表
cmd.Parameters.Clear() '清除參數
End If
Catch ex As Exception
MsgBox("查詢失敗", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "正告")
Finally '最后1定要燒毀cmd
Call CloseCmd(cmd)
End Try
Return dt
End Function
''' <summary>
''' 履行查詢的操作,(無參)
''' </summary>
''' <param name="cmdText">需要履行語句,1般是Sql語句,也有存儲進程</param>
''' <param name="cmdType">判斷Sql語句的類型,1般都不是存儲進程</param>
''' <returns>dataTable,查詢到的表格</returns>
''' <remarks></remarks>
Public Function ExecSelectNo(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim ds As New DataSet
'還是給cmd賦值
cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = conn
sqlAdapter = New SqlDataAdapter(cmd) '實例化adapter
Try
sqlAdapter.Fill(ds) '用adapter將dataSet填充
Return ds.Tables(0) 'datatable為dataSet的第1個表
Catch ex As Exception
Return Nothing
Finally '最后1定要燒毀cmd
Call CloseCmd(cmd)
End Try
End Function
''' <summary>
''' 關閉連接
''' </summary>
''' <param name="conn">需要關閉的連接</param>
''' <remarks></remarks>
Public Sub CloseConn(ByVal conn As SqlConnection)
If (conn.State <> ConnectionState.Closed) Then '如果沒有關閉
conn.Close() '關閉連接
conn = Nothing '不指向原對象
End If
End Sub
''' <summary>
''' 關閉命令
''' </summary>
''' <param name="cmd">需要關閉的命令</param>
''' <remarks></remarks>
Public Sub CloseCmd(ByVal cmd As SqlCommand)
If Not IsNothing(cmd) Then '如果cmd命令存在
cmd.Dispose() '燒毀
cmd = Nothing
End If
End Sub
End Class