Firebird数据库连接字符串

时间:2016-01-02 00:16:25

标签: c# firebird2.5

当我用firebird db作为后端运行c#代码时,它会显示。我的代码很简单,那为什么会出现这样的错误?

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

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

    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);
        }
    }

1 个答案:

答案 0 :(得分:0)

问题在于您尝试使用嵌入式(ServerType=1),但路径上的fbembed.dll(或fbclient.dll)与运行时位数不匹配(例如32位vs 64位)。

您确定要使用嵌入式Firebird吗?配置字符串的其余部分似乎建议您要连接到正常的Firebird服务器,在这种情况下ServerType=0(或者只是将其关闭)更好,因为您没有对本机dll的依赖。