C# Firebird数据库连接字符串

C# Firebird数据库连接字符串,c#,firebird2.5,C#,Firebird2.5,当我以firebird db作为后端运行c#代码时,它显示了。我的代码简单明了,那么为什么它会显示这样一个错误 FirebirdSql.Data.FirebirdClient.dll中发生类型为“System.BadImageFormatException”的未处理异常 其他信息:试图加载格式不正确的程序。(HRESULT的异常:0x8007000B) 问题是您试图使用嵌入式(ServerType=1),但路径上的fbedded.dll(或fbclient.dll)与运行时位不匹配(例如32位对

当我以firebird db作为后端运行c#代码时,它显示了。我的代码简单明了,那么为什么它会显示这样一个错误

FirebirdSql.Data.FirebirdClient.dll中发生类型为“System.BadImageFormatException”的未处理异常

其他信息:试图加载格式不正确的程序。(HRESULT的异常:0x8007000B)


问题是您试图使用嵌入式(
ServerType=1
),但路径上的
fbedded.dll
(或
fbclient.dll
)与运行时位不匹配(例如32位对64位)


您确定要使用Firebird embedded吗?配置字符串的其余部分似乎表明您希望连接到普通Firebird服务器,在这种情况下,
ServerType=0
(或者干脆不使用它)会更好,因为这样您就不会依赖于本机dll。

错误与您的代码无关。问题在于您正在引用的DLL。您可能使用了错误的版本,或者在64位计算机上使用了32位版本,等等。您的意思是说firebird ado.net数据提供程序DLL可能是错误的??是的,根据错误消息。BadImageFormatException表示由于某种原因它无法读取DLL。@Tim非常感谢。已将平台目标更改为x64,并且正在工作。
    private void button1_Click(object sender, EventArgs e)
    {
        string connectionString =
                                    "User=SYSDBA;" +
                                    "Password=masterkey;" +
                                    "Database=TESTFB.fdb;" +
                                    "DataSource=localhost;" +
                                    "Port=3050;" +
                                    "Dialect=3;" +
                                    "Charset=NONE;" +
                                    "Role=;" +
                                    "Connection lifetime=15;" +
                                    "Pooling=true;" +
                                    "MinPoolSize=0;" +
                                    "MaxPoolSize=50;" +
                                    "Packet Size=8192;" +
                                    "ServerType=1;";
        //string sql = "INSERT INTO STUDENT(ID,NAME) VALUES(@ID,@NAME)";
        string sql = "SELECT * FROM STUDENT WHERE ID=@ID AND NAME=@NAME;";
        try
        {
            FbConnection con = new FbConnection(connectionString);
            con.Open();
            FbCommand cmd = new FbCommand(sql, con);
            cmd.Parameters.Add("@ID", FbDbType.Integer).Value = Convert.ToInt32(textBox1.Text);
            cmd.Parameters.Add("@ID", FbDbType.VarChar).Value = textBox2.Text;

            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
        }
        catch (FbException ex)
        {
            MessageBox.Show("5--" + ex.Message);
        }
    }