這篇文章 ...是吃撐了 ... 把資料存取 和 連線字串 寫成類別,供以後的程式使用 ...
>>ASP.NET 2.0動態產生TreeView樹狀結構-C# & VB.NET 混合
首先 ... 我寫了一個萬用?!!!的objData 類別 ...如下(這是用VB.NET寫的)
這篇文章 ...是吃撐了 ... 把資料存取 和 連線字串 寫成類別,供以後的程式使用 ...
>>ASP.NET 2.0動態產生TreeView樹狀結構-C# & VB.NET 混合
首先 ... 我寫了一個萬用?!!!的objData 類別 ...如下(這是用VB.NET寫的)
002 ''' 資料存取層物件核心。 By Phoehix - 2008
003 ''' </summary>
004 Public Class objData
005 Inherits objConn
006 ''' <summary>
007 ''' 執行SQL Select
008 ''' </summary>
009 ''' <param name="SQL">SQL查詢字串</param>
010 ''' <param name="ds">DataSet</param>
011 ''' <returns>成功/失敗</returns>
012 Public Function SqlSelectQuery(ByRef SQL As String, ByRef ds As DataSet) As Boolean
013 If SQL.Contains("@") Then
014 Return False
015 Exit Function
016 End If
017 Try
018 Using SQLConn As New SqlConnection(ConnStr)
019 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
020 Dim da As New SqlDataAdapter(SqlCmd)
021 da.Fill(ds)
022 End Using
023 Return True
024 Catch ex As Exception
025 Return False
026 Finally
027 SQL = Nothing
028 End Try
029 End Function
030 ''' <param name="SQL">SQL查詢字串</param>
031 ''' <param name="dt">DataTable</param>
032 ''' <returns>成功/失敗</returns>
033 Public Function SqlSelectQuery(ByRef SQL As String, ByRef dt As DataTable) As Boolean
034 If SQL.Contains("@") Then
035 Return False
036 Exit Function
037 End If
038 Try
039 Using SQLConn As New SqlConnection(ConnStr)
040 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
041 SQLConn.Open()
042 dt.Load(SqlCmd.ExecuteReader)
043 End Using
044 Return True
045 Catch ex As Exception
046 Return False
047 Finally
048 SQL = Nothing
049 End Try
050 End Function
051 ''' <param name="SQL">SQL查詢字串</param>
052 ''' <param name="Parameter">單一SQL預存程序</param>
053 ''' <param name="ds">DataSet</param>
054 ''' <returns>成功/失敗</returns>
055 Public Function SqlSelectQuery(ByRef SQL As String, ByRef Parameter As SqlParameter, ByRef ds As DataSet) As Boolean
056 Try
057 Using SQLConn As New SqlConnection(ConnStr)
058 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
059 SqlCmd.Parameters.Add(Parameter)
060 Dim da As New SqlDataAdapter(SqlCmd)
061 da.Fill(ds)
062 End Using
063 Return True
064 Catch ex As Exception
065 Return False
066 Finally
067 SQL = Nothing
068 Parameter = Nothing
069 End Try
070 End Function
071 ''' <param name="SQL">SQL查詢字串</param>
072 ''' <param name="Parameter">單一SQL預存程序</param>
073 ''' <param name="dt">DataTable</param>
074 ''' <returns>成功/失敗</returns>
075 ''' <remarks></remarks>
076 Public Function SqlSelectQuery(ByRef SQL As String, ByRef Parameter As SqlParameter, ByRef dt As DataTable) As Boolean
077 Try
078 Using SQLConn As New SqlConnection(ConnStr)
079 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
080 SqlCmd.Parameters.Add(Parameter)
081 SQLConn.Open()
082 dt.Load(SqlCmd.ExecuteReader)
083 End Using
084 Return True
085 Catch ex As Exception
086 Return False
087 Finally
088 SQL = Nothing
089 Parameter = Nothing
090 End Try
091 End Function
092 ''' <param name="SQL">SQL查詢字串</param>
093 ''' <param name="Parameters">SQL預存程序集合</param>
094 ''' <param name="ds">DataSet</param>
095 ''' <returns>成功/失敗</returns>
096 Public Function SqlSelectQuery(ByRef SQL As String, ByRef Parameters As SqlParameter(), ByRef ds As DataSet) As Boolean
097 Try
098 Using SQLConn As New SqlConnection(ConnStr)
099 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
100 SqlCmd.Parameters.AddRange(Parameters)
101 Dim da As New SqlDataAdapter(SqlCmd)
102 da.Fill(ds)
103 End Using
104 Return True
105 Catch ex As Exception
106 Return False
107 Finally
108 SQL = Nothing
109 Parameters = Nothing
110 End Try
111 End Function
112 ''' <param name="SQL">SQL查詢字串</param>
113 ''' <param name="Parameters">SQL預存程序集合</param>
114 ''' <param name="dt">DataTable</param>
115 ''' <returns>成功/失敗</returns>
116 Public Function SqlSelectQuery(ByRef SQL As String, ByRef Parameters As SqlParameter(), ByRef dt As DataTable) As Boolean
117 Try
118 Using SQLConn As New SqlConnection(ConnStr)
119 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
120 SqlCmd.Parameters.AddRange(Parameters)
121 SQLConn.Open()
122 dt.Load(SqlCmd.ExecuteReader)
123 End Using
124 Return True
125 Catch ex As Exception
126 Return False
127 Finally
128 SQL = Nothing
129 Parameters = Nothing
130 End Try
131 End Function
132 ''' <summary>
133 ''' 執行Sql命令
134 ''' </summary>
135 ''' <param name="SQL">SQL查詢字串</param>
136 ''' <returns>引響的行數</returns>
137 Public Function SqlExecuteNonQuery(ByRef SQL As String) As Integer
138 Dim result As Integer = 0
139 If SQL.Contains("@") Then
140 Return result
141 Exit Function
142 End If
143 Try
144 Using SQLConn As New SqlConnection(ConnStr)
145 Dim SqlCmd As New SqlCommand(SQL, SQLConn)
146 SQLConn.Open()
147 result = SqlCmd.ExecuteNonQuery()
148 End Using
149 Return result
150 Catch ex As Exception
151 Return result
152 Finally
153 SQL = Nothing
154 End Try
155 End Function
156 ''' <param name="sql">SQL查詢字串<</param>
157 ''' <param name="Parameter">SQL預存程序</param>
158 ''' <returns>引響的行數</returns>
159 Public Function SqlExecuteNonQuery(ByRef sql As String, ByRef Parameter As SqlParameter) As Integer
160 Dim result As Integer = 0
161 Try
162 Using SQLConn As New SqlConnection(ConnStr)
163 Dim SqlCmd As New SqlCommand(sql, SQLConn)
164 SqlCmd.Parameters.Add(Parameter)
165 SQLConn.Open()
166 result = SqlCmd.ExecuteNonQuery()
167 End Using
168 Return result
169 Catch ex As Exception
170 Return result
171 Finally
172 sql = Nothing
173 Parameter = Nothing
174 End Try
175 End Function
176 ''' <param name="sql">SQL查詢字串</param>
177 ''' <param name="Parameters">SQL預存程序集合</param>
178 ''' <returns>引響的行數</returns>
179 Public Function SqlExecuteNonQuery(ByRef sql As String, ByRef Parameters As SqlParameter()) As Integer
180 Dim result As Integer = 0
181 Try
182 Using SQLConn As New SqlConnection(ConnStr)
183 Dim SqlCmd As New SqlCommand(sql, SQLConn)
184 SqlCmd.Parameters.AddRange(Parameters)
185 SQLConn.Open()
186 result = SqlCmd.ExecuteNonQuery()
187 End Using
188 Return result
189 Catch ex As Exception
190 Return result
191 Finally
192 sql = Nothing
193 Parameters = Nothing
194 End Try
195 End Function
196 Public Sub New()
197
198 End Sub
199
200 Protected Overrides Sub Finalize()
201 MyBase.Finalize()
202 End Sub
203 End Class
恩 ...基本上是如此 ... 用多載(OverLoads)的方式寫成的 ...沒有什麼技巧可言= =、
稍微解釋一下好了 ...
第五行 Inherits objConn 表示 這個類別是繼承自 objConn
12~29 執行Select 傳回 成功/失敗 用 參考記憶體位址的方式 寫入DataSet
33~50 如上 參考記憶體位址改為 --> DataTable
55~70 同12~29 ~ 這邊參考一個預存 SqlParameter
76~91 同 33~50 ~這邊參考一個預存 SqlParameter
96~111 同55~70 只是 參考預存程序改為預存程序的集合
116~131 同76~91 只是 參考預存程序改為預存程序的集合
真的是吃撐了= =、哈哈
objConn是用來存取連線字串的類別(修正版)
(奇怪 ...當時不知道在想啥 亂寫一通 Property 多載是啥鬼東西...明明NEW就指定好了)
02 ''' 資料存取層物件。 By Phoehix - 2008
03 ''' </summary>
04 Public Class objConn
05 Private _ConnStr As String
06
07 ''' <summary>
08 ''' 取得ConnectionString。
09 ''' </summary>
10 ''' <returns>ConnectionString</returns>
11 Public ReadOnly Property ConnStr() As String
12 Get
13 Return _ConnStr
14 End Get
15 End Property
16 ''' <summary>
17 ''' 初始化 objConn 類別的新執行個體
18 ''' </summary>
19 Public Sub New()
20 GetConnStr()
21 End Sub
22 ''' <param name="name">web.config中,連線字串的名稱。</param>
23 Public Sub New(ByVal name As String)
24 GetConnStr(name)
25 End Sub
26 ''' <param name="index">web.config中,連線字串的索引。</param>
27 Public Sub New(ByVal index As Integer)
28 GetConnStr(index)
29 End Sub
30 Private Sub GetConnStr()
31 _ConnStr = WebConfigurationManager.ConnectionStrings(0).ConnectionString.ToString()
32 End Sub
33 Private Sub GetConnStr(ByVal name As String)
34 _ConnStr = WebConfigurationManager.ConnectionStrings(name).ConnectionString.ToString()
35 End Sub
36 Private Sub GetConnStr(ByVal index As Integer)
37 _ConnStr = WebConfigurationManager.ConnectionStrings(index).ConnectionString.ToString()
38 End Sub
39
40 Protected Overrides Sub Finalize()
41 MyBase.Finalize()
42 End Sub
43 End Class同樣的 也是沒有什麼技巧可言 ... 用New的多載指定Web.Config內的連線字串值 ...
這兩個類別 ...是無聊之下的產物 ...
厄 簡稱 吃撐了= =、哈哈(哀~要想到永續發展阿 ...)
再來 進入我們的主題 ... ->ASP.NET 2.0動態產生TreeView樹狀結構-C# & VB.NET 混合
Phoenix 8/4