[ASP.NET]4種利用程式設計方式讀取資料庫,輸出成表格
添加迴響
2010年4月13日
![20100415-[ASP.NET]-4種利用程式設計方式讀取資料庫,輸出成表格 [顯示結果]](http://farm3.static.flickr.com/2705/4522432847_5cdac25d5d.jpg)
新一代的ASP.NET提供很多方便的東西,例如:拉GridView和DataSource到網頁,只要設定幾下,馬上就有一個從資料庫中讀出來的表格 不過,去企業工作時可能就不是用新的技術開發,例如:接別人寫得專案,用ASP(不是ASP.NET)寫一個連資料庫的程式,必須想辦法寫出來 這裡提供4種方式可以輸出
[第一種]-使用ADODB.Connection和ADODB.RecordSet|連接ACCESS資料庫
Dim e_Connection, e_RecordSet As Object '建立空白物件
'只能在有 Page aspcompat="true" 頁面指示詞的頁面上建立 Apartment 執行緒元件
e_Connection = Server.CreateObject("ADODB.Connection") '建立ADODB.Connection物件
Dim DataSource As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("\App_Data\Student.mdb").ToString & ";Persist Security Info=True" 'Server.MapPath會對應專案的路徑
e_Connection.Open(DataSource) '啟動資料庫連接
e_RecordSet = e_Connection.execute("SELECT * FROM Student") '執行SQL語法,並傳回RecordSet
'開頭標記
Dim OutputWay1 As New StringBuilder '新一代的字串儲存方式,讓字串存取效率變快
OutputWay1.Append("| " & e_RecordSet(Field).Name & " | " & vbNewLine) '輸出欄位名稱 Next OutputWay1.Append("
| " & e_RecordSet(Field).Value & " | " & vbNewLine) Next OutputWay1.Append("
[第二種]-使用ADODB.Connection和ADODB.RecordSet和ADODB.Command|連接ACCESS資料庫
Dim objConn = CreateObject("ADODB.Connection")
Dim objCmd = CreateObject("ADODB.Command")
Dim objRs = CreateObject("ADODB.RecordSet")
Dim DataSource As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("\App_Data\student.mdb").ToString & ";Persist Security Info=True" 'Server.MapPath會對應專案的路徑
objConn.Open(DataSource) '啟動資料庫連接
objCmd.CommandText = "SELECT * FROM Student"
objCmd.ActiveConnection = objConn
objRs.Open(objCmd)
'開頭標記
Dim OutputWay2 As New StringBuilder '新一代的字串儲存方式,讓字串存取效率變快
OutputWay2.Append("| " & objRs(Field).Name & " | " & vbNewLine) '輸出欄位名稱 Next OutputWay2.Append("
| " & objRs(Field).Value & " | " & vbNewLine) Next OutputWay2.Append("
[第三種]-使用SqlClient.SqlConnection和SqlClient.SqlCommand|連接SQL Server資料庫
Dim ConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & Server.MapPath("\App_Data\Student.mdf").ToString & ";Integrated Security=True;User Instance=True" '資料庫連接字串
Dim QueryString As String = "SELECT * FROM Student" 'sql查詢
Using connection As New System.Data.SqlClient.SqlConnection(ConnectionString) '新增資料庫連接
Try
Dim Command As New System.Data.SqlClient.SqlCommand(QueryString, connection) '新增資料庫查詢
connection.Open() '開啟資料庫連接
Dim dataReader As SqlClient.SqlDataReader = Command.ExecuteReader() '將查詢後的結果回給Reader進行讀取動作
'第一列(標題)
Dim OutputWay3 As New StringBuilder
'開頭標記
OutputWay3.Append("| " & dataReader.GetName(Field) & " | " & vbNewLine) '輸出欄位名稱 Next OutputWay3.Append("
| " & dataReader.GetValue(Field) & " | " & vbNewLine) Next OutputWay3.Append("
" & _ "原因在於Data Source=.\SQLEXPRESS資料庫名稱在小弟我的機器上和您的PC上的資料庫名稱不同
" & _ "若出現此錯誤,麻煩您更正成您本機上的SQL Server名稱" End Try End Using
[第四種]-使用OleDb.OleDbConnection和OleDb.OleDbCommand|連接ACCESS資料庫
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'方法二
Way2()
'方法四
'資料庫連接字串(在Web.config)
'連接字串
Dim AccessDbConnStr As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("AccessDb")
'SQL連接字串
Dim SQLString As String = "SELECT * FROM [Student]"
'從資料庫讀取
Dim OutputData As OleDb.OleDbDataReader = ReadData(AccessDbConnStr, "ExecuteReader", SQLString)
'輸出成表格
CreateTable(OutputData)
End Sub
Public Sub CreateTable(ByVal OutputData As OleDb.OleDbDataReader)
Dim Output As New StringBuilder
Const TR As String = "", TR2 As String = " ", TD As String = "", TD2 As String = " ", TABLE As String = "
哇~偶像