2016-10-16 11 views
0

Я новичок в VB и ASP.net, изучая проект. Я пытаюсь создать инструмент поиска базы данных, используя VB в среде ASP.net.ASP.net Visual Basic Поставщик 'Microsoft.ACE.OLEDB.12.0' не зарегистрирован на локальном компьютере

Мой сайт размещен на IIS 7 в Windows Server 2012 R2. база данных - это база данных Access 2013 на веб-сервере

Когда я перехожу на страницу с помощью своего VB gui, она отображается правильно, но когда я делаю свой поиск, я получаю сообщение об ошибке «Microsoft.ACE.OLEDB.12.0», провайдер не зарегистрирован на локальном компьютере.

Трассировка стека:

[InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.] 
    System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) +1634602 
    System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +1651428 
    System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +100 
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +61 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +953 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6600667 
    System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +27 
    System.Data.OleDb.OleDbConnection.Open() +47 
    Nekros.cmdLookup_Click(Object sender, EventArgs e) in C:\xampp\htdocs\nekros\ePSA.aspx.vb:19 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +155 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804 

Мой код:

Imports System.Data.OleDb 
Partial Class Nekros 
    Inherits System.Web.UI.Page 
    Dim provider As String 
    Dim dataFile As String 
    Dim connString As String 
    Public myConnection As OleDbConnection = New OleDbConnection 
    Public dr As OleDbDataReader 
    Dim prog As String 
    Dim start As String 
    Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
     provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" 
     dataFile = "C:\Shares\share\Projects\Nekros\Database\Nekros.accdb" ' Change it to your Access Database location 
     connString = provider & dataFile 
     myConnection.ConnectionString = connString 
    End Sub 

    Private Sub cmdLookup_Click(sender As Object, e As EventArgs) Handles cmdLookup.Click 
     myConnection.Open() 
     txtFull.Text = "" 
     txtMeaning.Text = "" 
     txtPOA.Text = "" 
     Dim str As String 
     str = "SELECT * FROM ePSA WHERE (ePSA = '" & txtePSA.Text & "')" 
     Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) 
     dr = cmd.ExecuteReader 
     While dr.Read() 
      txtFull.Text = dr("Error").ToString 
      txtMeaning.Text = dr("Meaning").ToString 
      txtPOA.Text = dr("POA").ToString 
     End While 
     myConnection.Close() 

    End Sub 
End Class 

Пожалуйста, помогите!

также пожалуйста, объясните как можно проще, так как я все еще очень новичок в этом.

ответ