ก่อนอื่นให้ทำการ Download File VFPOleDB จากนั้นทำการติดตั้ง โปรแกรม (VFPOLEDBSetup.msi)
1. เปิดโปรแกรม Visual Studo 20xx เลือก New Project....
2. คลิกที่รายการ Web -> ASP.NET Empty Web Application แล้วตั้งชื่อที่ช่อง Name: WebForm1
3. ทำการ Add -> New Item... -> Web Form ขึ้นมา
4. ไปที่เมนู PROJECT หรือ WEBSITE เลือกรายการ Add Refrence...
5. ที่หน้าต่าง Reference Manager ให้เลือกที่รายการ COM -> Type Libraries
ติ๊กเลือก Microsoft OLE DB Provider for Visual FoxPro 7.0 Type Library ตามภาพ แล้วคลิก OK
6. ทำการเขียนคำสั่ง ในส่วนของ Web Form เช่น
ต้องการเรียกดูข้อมูลจากตาราง D:\CSS\Data\GROUP.dbf
ส่วนคำสั่ง SQL ทำการ Select ข้อมูล เฉพาะที่กำหนด
เขียนคำสั่ง ดังนี้ (ปรับเปลี่ยนตามข้อมูลของแต่ละท่าน)
Imports System.Data
Partial Class WebForm1
Inherits System.Web.UI.Page
Dim DataDBF As String = "D:\CSS\Data\"
Dim ConnectionString As String = String.Empty, sCommand As String = String.Empty
Dim dBaseConnection As OleDb.OleDbConnection = Nothing, dBaseCommand As OleDb.OleDbCommand = Nothing
Dim retVal As Integer = 0
Dim reader As OleDb.OleDbDataReader
Dim cSearch As String
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
'if use visual fox pro Connect to a single DBF-file
ConnectionString = "Provider=vfpoledb;Data Source=" & IO.Path.GetDirectoryName(DataDBF) & ";Collating Sequence=machine;"
dBaseConnection = New OleDb.OleDbConnection(ConnectionString)
dBaseConnection.Open()
cSearch = "อ" ' ค้นหาตัวอักษร อ
sCommand = "Select gr_code,gr_desc from group.dbf where gr_desc like '%" & cSearch & "%' "
dBaseCommand = New OleDb.OleDbCommand(sCommand, dBaseConnection)
'myDA = New OleDbDataAdapter(comm)
'dBaseCommand = New OleDb.OleDbCommand(sCommand, dBaseConnection)
retVal = dBaseCommand.ExecuteNonQuery()
reader = dBaseCommand.ExecuteReader()
While reader.Read()
Response.Write(reader("gr_code").ToString & " ")
' second column
Response.Write(reader("gr_desc").ToString & " ")
'intCount = intCount + 1
End While
dBaseConnection.Close()
Catch ex As OleDb.OleDbException
Response.Write(ex.Message)
End Try
End Sub
End Class
จากตัวอย่างข้างต้นเป็นตัวอย่างการใช้ออปเจ็กต์ Reader เพื่ออ่านเรคคอร์ดทีละรายการเพื่อทำการแสดงโดยผ่านคำสั่ง HTML ภายใต้ Response.Write
สำหรับตัวอย่างต่อไปนี้ จะเป็นการแสดงข้อมูลผ่านทาง GridView
ให้ทำการลาก GridView มาไว้ที่เว็บฟอร์ม ดังภาพ
ตั้งชื่อ GridView -> GridView1
จากนั้น ก็ดัดแปลงคำสั่งใหม่ดังนี้
Imports System.Data
Partial Class WebForm1
Inherits System.Web.UI.Page
Dim DataDBF As String = "D:\CSS\Data\"
Dim ConnectionString As String = String.Empty, sCommand As String = String.Empty
Dim dBaseConnection As OleDb.OleDbConnection = Nothing, dBaseCommand As OleDb.OleDbCommand = Nothing
Dim cSearch As String
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
'if use visual fox pro Connect to a single DBF-file
ConnectionString = "Provider=vfpoledb;Data Source=" & IO.Path.GetDirectoryName(DataDBF) & ";Collating Sequence=machine;"
dBaseConnection = New OleDb.OleDbConnection(ConnectionString)
dBaseConnection.Open()
cSearch = "อ" ' ค้นหาตัวอักษร อ
sCommand = "Select gr_code,gr_desc from group.dbf where gr_desc like '%" & cSearch & "%' "
dBaseCommand = New OleDb.OleDbCommand(sCommand, dBaseConnection)
'
Dim dt As DataTable = GetData(dBaseCommand)
GridView1.DataSource = dt
GridView1.DataBind()
'
dBaseConnection.Close()
Catch ex As OleDb.OleDbException
Response.Write(ex.Message)
End Try
End Sub
Private Function GetData(ByVal cmd As OleDb.OleDbCommand) As DataTable
Dim dt As New DataTable()
Dim sda As New OleDb.OleDbDataAdapter()
cmd.CommandType = CommandType.Text
cmd.Connection = dBaseConnection
sda.SelectCommand = cmd
sda.Fill(dt)
sda.Dispose()
Return dt
End Function
End Class
จะปรากฎข้อมูลดังตัวอย่าง
สวัสดี มีสุข
4 ความคิดเห็น:
การเชื่อมต่อแบบนี้ Import อะไรบ้างครับ
หากต้องการแสดงข้อมูลที่ Gridview ด้วย Button ต้องเขียนอย่างไรครับ
ขอบคุณมากครับที่สละเวลา เป็นแนวทางที่ดีมากๆครับ
แสดงความคิดเห็น