一般來說,書上都會教大家使用DataSet來Fill資料進DataTable使用
但這樣對只使用一個DataTable來說,似乎又有點多了一個步驟
這次在開發專案時,因為需要用到舊有的資料庫
但資料庫卻又有一堆空白資料是我不要的
照理來說,這種情況應該是要用SQL語法來解決
像是用Trim或RTrim、LTrim來去空白
但我需要把資料撈出來後,再去處理資料
所以我就直接使用DataTable來塞資料
到時候再把SqlDataSource指向DataTable即可
以下就是關於DataTable 新增 DataRow的程式碼
<pre>
Public Function DBInit() As DataTable
Dim dt As New DataTable() '宣告一個DataTable
dt.Columns.Add(New DataColumn("name", GetType(String))) '定義DataTable裡面的Row
dt.Columns.Add(New DataColumn("email", GetType(String))) '定義DataTable裡面的Row
Dim dr As SqlDataReader '宣告一個SqlDataReader
'要用以下的連線字串方法的話要 Imports System 跟 Imports System.Web.Configuration
Dim Conn As SqlConnection = New SqlConnection(WebConfigurationManager.ConnectionStrings("fantasy").ConnectionString.ToString)
Dim cmd As SqlCommand = New SqlCommand("SELECT [C_Name], [Office_Email] FROM [D001]", Conn)
Try
Conn.Open()
dr = cmd.ExecuteReader()
While dr.Read()
If (Trim(dr.Item("Office_Email"))) <> "" Then
Dim mydr As DataRow = dt.NewRow() '宣告一個DataRow
mydr("name") = Trim(dr.Item("c_name")).ToString
mydr("email") = Trim(dr.Item("Office_Email")).ToString
dt.Rows.Add(mydr) '將DataTable 加入宣告好的DataRow
End If
End While
Catch e As Exception
Response.Write(e.ToString())
Finally
If Not (dr Is Nothing) Then ' --關閉 DataReader
cmd.Cancel()
dr.Close()
End If
If (Conn.State = ConnectionState.Open) Then ' --關閉 DB的連線
Conn.Close()
End If
End Try
Return dt '回傳一個datatable
End Function
</pre>
這段程式碼已經寫成function,可直接使用來回傳一個datatable
以後可以這樣直接寫在一個Class之後再呼叫來用就可以了
- Nov 29 Mon 2010 17:31
[ASP.NET] 使用DataTable來新增DataRow
全站熱搜
留言列表