Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
997 views
in Technique[技术] by (71.8m points)

database - How to connect and use Firebird db embedded server with Visual C# 2010

I was trying to use Firebird embedded server with Microsoft Visual C# 2010. so here is what I done till now:

  1. Downloaded Firebird .Net Data Provider (Firebird Client v2.5.2).

  2. Downloaded Firebird Embedded server (Firebird Embedded Server v2.5.0).

  3. Added a reference to FirebirdSql.Data.FirebirdClient.dll to my project.

  4. Extracted and Copied fbembed.dll file to my application's directory.

  5. Added my FDB file "TEST.FDB" to my application's directory.

  6. Added "using FirebirdSql.Data.FirebirdClient;" statement.

So far so good (I suppose)...

Now when I try to connect to my FDB file using the following code:

    FbConnection con = new FbConnection("User=SYSDBA;" + "Password=masterkey;" + "Database=TEST.FDB;" + "DataSource=127.0.0.1;" + "Port=3050;" + "Dialect=3;" + "Charset=UTF8;");
    try  {
             con.Open();
         }
    catch (Exception ex) 
         {
            MessageBox.Show(ex.ToString());
         }

I always get the messagebox which means the code is not connecting to my DB file properly. am I doing something wrong? I'm really still noob with C# and I have no idea how to do this or fix it and I hope someone will help me with this.

thanks :)

EDIT: here is what I get in the exception:

FirebirdSql.Data.FirebirdClient.FbException (0x80004005): Unable to complete network request to host "127.0.0.1". ---> Unable to complete network request to host "127.0.0.1". at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect() at FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create() at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut() at FirebirdSql.Data.FirebirdClient.FbConnection.Open() at fbTestApp.Form1.button1_Click(Object sender, EventArgs e) in C:Documents and SettingsermacMy DocumentsVisual Studio 2010ProjectsfbTestAppfbTestAppForm1.cs:line 25

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I finally I found the solution after 6 hours of work :)

most of answers on google are either wrong or so old. all of them say that I only need to include fbembed.dll file to my project..

after some investigations I made. I found that I also need to add firebird.msg, firebird.conf, icudt30.dll, icuin30.dll, icuuc30.dll and ib_util.dll to my project files and to the output folder..

important notice: never use compact .Net data provider. because they made it for Normal and super firebird servers only. it won't work with embedded servers.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...