类型';System.Data.Common.DbTransaction';在未被引用的程序集中定义.必须添
本文关键字:集中 程序集 程序 定义 Common Data System DbTransaction 类型 引用 | 更新日期: 2023-09-27 18:03:34
欢迎。我正试图在Windows mobile 6上编写一个连接到Firebird 2.5.2数据库的应用程序(使用visual studio 2008和Forms(。我写了一段代码:
static public void Execute(FbTransaction tr, string sql, bool commit)
{
FbConnection cn = null;
FbCommand cmd = null;
if (tr != null)
{
cmd = new FbCommand(sql, tr.Connection, tr);
}
else
{
cn = new FbConnection(ConnString());
cmd = new FbCommand(sql, cn);
}
if (cmd.Connection.State == ConnectionState.Closed)
{
cmd.Connection.Open();
}
cmd.ExecuteNonQuery();
cmd.Dispose();
if (cn != null)
{
cn.Close();
cn.Dispose();
}
}
我在第1条车道上出现错误(突出显示执行(
错误1在未引用的程序集。必须添加对程序集的引用'System.Data,版本=2.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089'。
我的参考资料中添加了System.Data 2.0.0.0版本。如果有任何帮助,我将不胜感激。
我找到了解决办法。对于那些未来将面临类似问题的人,以下是我的做法:要让它在VS2008(.net 3.5(和firebird 2.5.2(目前最新(中使用64位windows窗体,您需要做的第一件事就是下载firebird EMBEDED win x 64包http://www.firebirdsql.org/en/firebird-2-5-2-upd1/
接下来,转到.NET提供程序的源代码版本,对我来说,这是一个(如果你在VS2010或更高版本中使用代码,请尝试更新的版本(http://sourceforge.net/projects/firebird/files/firebird-net-provider/2.5.2/
打开它,然后在配置管理器中,在x64下编译它。(记得添加特定.net版本的System.Data参考,我想我使用了2.0.0.0(
现在,创建您想要的winform项目,并包括步骤1中下载的嵌入式Firebird包中的所有.dll(将现有项添加到项目的根目录(
添加对您新编译的FirebirdSql.dll的引用,我在''NETProvider-2.5.2-src''NETProvider''source''FirebirdSql''Data''bin''x64''Debug''FirebirdSql.Data.FirebirdClient.dll
享受吧。奖金->
到本地Firebird服务器的字符串路径很棘手,所以以下是对我有效的
string Firebird_path = "User=SYSDBA;Password=masterkey;" +
"Database=localhost:L:''DBS''DBS.FDB; " +
"DataSource=localhost;Charset=NONE;";
您是否在项目中引用了Firebird.NET提供程序?
你可以在这里找到它。它也可以作为NuGet包添加。
类FbTransaction
实现了DbTranaction
接口。这意味着,如果在代码中使用FbTransaction
,那么在运行时也需要加载此接口,因此需要引用程序集。