C# Don';无法加载fbembed.dll,但它';它在测试用例中是好的吗?
我正在使用嵌入在.net应用程序中的FireBird。我的联系人是: 代码是:C# Don';无法加载fbembed.dll,但它';它在测试用例中是好的吗?,c#,database,firebird,embedded-database,C#,Database,Firebird,Embedded Database,我正在使用嵌入在.net应用程序中的FireBird。我的联系人是: 代码是: public class ImDb{ private static FbConnection _fbConnection; public static FbConnection IMManagerConnection() { var fbConnStringBuilder = new FbConnectionStringBuilder(); fbConnStr
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();
}
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];
}
这是我的测试用例:
代码是:
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();
}
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];
}
在我的应用程序中,这是错误的!!报表不加载fbembed.dll
代码是:
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();
}
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的值:
测试用例运行正常
但在应用程序中,该错误再次发生。
Firebird 2.5嵌入式的一组最小文件:
INTL\fbintl.conf
INTL\fbintl.dll
fbembed.dll
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
在您的情况下,microsoft文件丢失。没有解决方案
我必须更改FireBird服务器的版本
没关系
顺便说一句,我在我的应用程序中使用的是VisualWebGUI,路径问题可能与此有关。也许VWG和IIS之间有不同?我不知道,只是guest;) 对于Windows应用程序,它将在.exe文件所在的文件夹中查找dll 对于Web应用,可以设置连接字符串的ClientLibrary属性:
connectionString=“ServerType=1;User=SYSDBA;Password=masterkey;dialogy=3;Database=;ClientLibrary=“请使用实际代码而不是屏幕截图进行更新。。。这允许其他人搜索相同的问题。我看到了一些ASP.NET片段。您确定正在从此目录运行应用程序吗?可能它实际上是从不同的目录运行的-IIS(Express)等。这些文件不是必需的。这些可能与其他产品一起安装。我认为问题的关键是:测试用例没有问题,但只有在应用程序中才有问题。然后我将msv*.dll的文件复制到bin目录,问题仍然存在。在您的应用程序中,分配客户端库的行注释为//fbConnStringBuilder.ClientLibrary=@“fbedded.dll”;为什么?