.netアプリケーションに埋め込まれたFireBirdを使用しています。仲間は私の接続です:
コードは次のとおりです。
public class ImDb{
private static FbConnection _fbConnection;
public static FbConnection IMManagerConnection() {
var fbConnStringBuilder = new FbConnectionStringBuilder();
fbConnStringBuilder.ServerType = FbServerType.Embedded;
fbConnStringBuilder.UserID = "sysdba";
fbConnStringBuilder.Password = "masterkey";
//fbConnStringBuilder.ClientLibrary = @"fbembed.dll";
fbConnStringBuilder.Database = @"IMMANAGER.FDB";
_fbConnection = new FbConnection(fbConnStringBuilder.ConnectionString);
return _fbConnection;
}
}
これは私のテストケースです:
コードは次のとおりです。
[Test]
public void SimSymbolTest(){
FbConnection fbc=IMManager.Common.ImDb.IMManagerConnection();
fbc.Open();
Console.WriteLine("The Server Version is :" + fbc.ServerVersion);
Console.WriteLine("The database is :" + fbc.Database);
Console.WriteLine("The DataSource is :" + fbc.DataSource);
Console.WriteLine("The Version Number is: " + fbc.ServerVersionNumber);
fbc.Close();
}
私のアプリケーションでは、エラーです!!レポートfbembed.dllをロードしないでください
コードは次のとおりです。
private DataTable ExeQuery(string sqlString){
DataSet ds = new DataSet();
FbConnection fbc = ImDb.IMManagerConnection();
try {
fbc.Open();
FbTransaction fbt = fbc.BeginTransaction();
FbCommand fbcmd = new FbCommand(sqlString, fbc, fbt);
FbDataAdapter fbda = new FbDataAdapter(fbcmd);
fbda.Fill(ds);
fbt.Commit();
} catch (Exception ex) {
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
} finally {
fbc.Close();
}
return ds.Tables[0];
}
そして、これは私のディレクトリです:
助けてください!よろしくお願いします!
次に、接続コードを変更し、ClientLibraryの値を追加します。
そして、テストケースは正常に実行されています!
ただし、アプリケーションでは、エラーが再度発生します。