標籤:ado.net sql server
前面自己將了一大堆ADO.NET的基礎知識,現在該認真的實踐一下了,下面我介紹一下vb.net版機房收費系統中,SqlHelper的使用,在機房收費中,SqlHelper是自己編寫的一個類,裡面用到的前面講的幾個對象的簡單一實例。
SqlHelper簡介:SqlHelper是一個基於·NETFramework的資料庫操作組件。組件中包含資料庫操作方法。SqlHelper用於簡化你重複的去寫那些資料庫連接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封裝過後通常是只需要給方法傳入一些參數如資料庫連接字串,SQL參數等,就可以訪問資料庫了,很方便。
以上是百度百科中對SqlHelper的簡介。在vb.net機房個人重構版本中,SqlHelper類還涉及到了函數的重載,函數重載的知識之前在C++中接觸過,這裡不做過多的描述。下面讓我們來看一下SqlHelper這個類是怎樣起到作用的吧!
vb.net版SqlHelper源碼奉獻
<span style="font-family:KaiTi_GB2312;font-size:18px;">Imports System.DataImports System.Data.SqlClientImports System.Configuration Public Class SqlHelper '調用設定檔 Private ReadOnly strConnection As String = ConfigurationManager.AppSettings("Connstr").ToString '如果不調用設定檔,用字串串連也行 下面所示 ' Dim strConnection As String = "Data Source=自己的機器名;Initial Catalog=JiFang;Persist Security Info=True;User ID=sa;Password=55555" Public Function ExecuteNonQuery(ByRef cmdText As String, ByVal cmdType As CommandType) As Integer Using conn As New SqlConnection(strConnection) '建立連線物件 Dim cmd As SqlCommand = conn.CreateCommand() '建立命令對象 cmd.CommandText = cmdText '擷取要對資料來源執行的文本命令,insert update delete cmd.CommandType = cmdType '將命令對象的CommandType屬性值設定為cmdtype,這裡是SQL文本命令。cmdType參數在D層應經定義。 Try conn.Open() '開啟串連 Return cmd.ExecuteNonQuery '對資料庫進行操作 Catch ex As Exception '捕獲異常 Return 0 Throw ex '拋出異常 End Try End Using End Function '對資料庫進行增刪改操作 有參數 Public Function ExecuteNonQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Integer Using conn As New SqlConnection(strConnection) '定義串連 Dim cmd As SqlCommand = conn.CreateCommand() '定義cmd命令 cmd.CommandType = cmdType cmd.CommandText = cmdText cmd.Parameters.AddRange(sqlParams) '添加傳進來的參數。 Try conn.Open() Return cmd.ExecuteNonQuery() Catch ex As Exception Return 0 Throw ex End Try End Using End Function ' 查詢操作 無參數 Public Function ExecuteDataTable(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable Using conn As New SqlConnection(strConnection) Dim cmd As SqlCommand = conn.CreateCommand() Dim adp As SqlDataAdapter '聲明一個 DataAdapter 對象 Dim ds As New DataSet '聲明一個Dataset對象 cmd.CommandText = cmdText '同上 cmd.CommandType = cmdType '同上 adp = New SqlDataAdapter(cmd) '引用從資料來源中檢索的Command對象 Try conn.Open() '開啟串連 adp.Fill(ds) '網dataset中填充資料 Return ds.Tables(0) '返回dataset中第一個表 Catch ex As Exception Return Nothing Throw ex End Try End Using End Function '執行查詢操作 2 有參數 Public Function ExecuteDataTable(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable Using conn As New SqlConnection(strConnection) Dim cmd As SqlCommand = conn.CreateCommand() Dim adp As SqlDataAdapter Dim ds As New DataSet cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Parameters.AddRange(sqlParams) adp = New SqlDataAdapter(cmd) Try conn.Open() adp.Fill(ds) Return ds.Tables(0) Catch ex As Exception Return Nothing Throw ex End Try End Using End FunctionEnd Class</span>
拿查詢充值記錄來說吧,下面是充值記錄D層的代碼。
Imports System.DataImports System.Data.SqlClientPublic Class QueryRechargeInfo1 Public Function QueryCharge(model As JFModel.QueryRechargeInfo) As IList(Of JFModel.QueryRechargeInfo) Dim sqlparamas As SqlParameter() = {New SqlParameter("@CardNo", model.CardNO)} Dim cmdtxet As String = "select * from Recharge_Info where [email protected]" '查詢資料庫中的資訊 Dim cmdtype As CommandType = New CommandType() cmdtype = CommandType.Text Dim helper As New SqlHelper Dim dt As New DataTable '定義查詢到的表集 Dim myList As List(Of JFModel.QueryRechargeInfo) '儲存轉換後的泛型集合 dt = helper.ExecuteDataTable(cmdtxet, cmdtype, sqlparamas) '執行查詢 '將dt轉換為泛型集合 myList = DataSetToList.converToList(Of JFModel.QueryRechargeInfo)(dt) Return myList '返回一個實體 End FunctionEnd Class
以上便是我對SqlHelper的瞭解與應用,想想之前看見SqlHelper就害怕,裡面的代碼什麼根本不知道為什麼這麼寫,現在有了前面那幾篇文章做鋪墊,對SqlHelper,對ADO.NET總算有點瞭解了。
機房收費系統——SqlHelper