2015-07-08 5 views
0

У меня возникли проблемы с подключением к базе данных Firebird с использованием VB.NET 2012. Я загрузил поставщика инфраструктуры Entity Framework Firebird через диспетчер пакетов NuGet..NET 2012 Подключение к базе данных Firebird

Я проверил и следующие ссылки были добавлены к проекту:

EntityFramework, EntityFramework.Firebird, EntityFramework.SqlServer и FirebirdSql.Data.FirebirdClient.

Когда я запускаю программу, в выходные окна отображается следующая информация:

A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll 
A first chance exception of type 'FirebirdSql.Data.Common.IscException' occurred in FirebirdSql.Data.FirebirdClient.dll 
A first chance exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll 
A first chance exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll 

я не получаю какие-либо ошибки отображаются в приложении, но ничего не происходит

Вот мой код:

Imports FirebirdSql.Data.FirebirdClient 
Imports System.Text 
Imports System.Net 

Public Class Form1 

    Dim con As FbConnection 
    Dim cs As FbConnectionStringBuilder 

    Public Sub New() 

     InitializeComponent() 

     cs = New FbConnectionStringBuilder 
     cs.Database = "C:\database.fdb" 
     cs.ServerType = FbServerType.Default 
     cs.UserID = "SYSDBA" 
     cs.Password = "password" 

    End Sub 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 

     con = New FbConnection(cs.ToString) 
     con.Open() 

     Dim sCmd As FbCommand 
     Dim sql As String 
     Dim ds As FbDataReader 

     sql = "SELECT something FROM TABLE" 

     sCmd = New FbCommand() 
     sCmd.Connection = con 
     sCmd.CommandText = sql 
     ds = sCmd.ExecuteReader 

     Dim str As New StringBuilder 

     While (ds.Read) 

      MsgBox(ds.GetString(0)) 

     End While 

     ds.Close() 

     End 

    End Sub 

End Class 

Я экспериментировал с различными версиями Firebird, но мне действительно нужна помощь.

+0

Не уверен, но я предлагаю отойти от этой базы данных из ROOT системного диска. Обычно для этого пути требуются самые высокие разрешения для записи (и поставщику базы данных требуется доступ на запись к базе данных). – Steve

+0

Вам необходимо предоставить фактические стеки стека исключений. –

ответ

-1

В вашей строке соединения отсутствует имя хоста, где работает Firebird.

+0

Нет, это не так, поскольку у меня такой же код работает в другом окне Windows. – monkey64

+0

Глядя на свой собственный ответ, вы должны были сказать, что используете «Embedded», тогда, очевидно, вам не нужно имя хоста. –

+0

Я заявлял, что использовал Firebird Entity Framework Provider, который работает только с помощью Embedded. – monkey64

0

Ответ был прост. Поскольку я использовал клиент Firebird, ServerType должен был быть установлен в Embedded, потому что он включает специальную клиентскую библиотеку, которая включает сам сервер.

Смежные вопросы