ตอนที่ทำการconnect กับ database ที่เป็น .dbf แล้วมันจะขึ้น Error The 'VFPOLEDB.1' provider is not registered on the local machine.' ไม่ทราบว่าเป็นเพราะอะไร หรือจะเกี่ยวกันไหมที่เครื่องที่ใช้เขียนเป็น Win7 64 bit แล้วจะต้องแก้ไขยังไงเพื่อที่จะสามารถ connect ได้ทั้ง 64 bit และ 32 bit รบกวนด้วยน่ะค่ะ
Code (VB.NET)
Imports System.Data
Imports System.Data.Odbc
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO
Imports System.Data.OleDb
Public Class frmMain
Dim lcName As String
Dim objConn As New OleDbConnection
Dim dtAdapter As OleDbDataAdapter
Dim dt As New DataTable
Dim strConnString As String
Dim strSQL As String
Dim fileName As String
Dim maxvalue, irow As Integer
Private Sub btnBrows_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrows.Click
Dim fdlg As OpenFileDialog = New OpenFileDialog()
Try
fdlg.Title = "Open File Dialog"
fdlg.InitialDirectory = "c:\"
fdlg.Filter = "foxpro (*.dbf)|*.dbf"
fdlg.FilterIndex = 2
fdlg.RestoreDirectory = True
If fdlg.ShowDialog() = DialogResult.OK Then
lblPathFile.Text = fdlg.FileName
Dim f As New FileInfo(fdlg.FileName)
fileName = f.Name.Split(".")(0)
End If
Catch
MessageBox.Show("เกิดข้อผิดพลาดกับ File Dialog ค่ะ", "File Dialog Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Close()
End Try
End Sub
Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
objConn = New System.Data.OleDb.OleDbConnection("Provider=VFPOLEDB.1;Data Source=" & lblPathFile.Text & "")
objConn.Open()
Try
strSQL = " select * from " & fileName & ""
dt.Clear()
dtAdapter = New OleDbDataAdapter(strSQL, objConn)
Catch
MessageBox.Show("ไม่สามารถติดต่อฐานข้อมูลได้ค่ะ", "Connect Database Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Close()
End Try
Try
dtAdapter.Fill(dt)
dgvData.DataSource = dt
maxvalue = dt.Rows.Count
dtAdapter = Nothing
objConn.Close()
objConn = Nothing
Catch
MessageBox.Show("ไม่สามารถดาวน์โหลดข้อมูลได้ค่ะ", "Add Data Error !", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Close()
End Try
End Sub
End Class
Tag : .NET, VB.NET
Date :
2013-01-09 12:04:16
By :
MooT
View :
4118
Reply :
3
No. 1
Guest
เป็นที่เครื่องที่ใช้เขียนเป็น Win7 64 bit 100% ถูกต้องแล้วครับ
วิธีแก้ไขปัญหาเฉพาะหน้า
1. คลิกขวาที่ Your Project Name เลือก Property --> Advanced Compile Options
2. ตรงซ่อง Target CPU ให้เลือกเป็น x86 (โดยปกติจะเป็น AnyCPU)