当我用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);
}
}
答案 0 :(得分:0)
问题在于您尝试使用嵌入式(ServerType=1
),但路径上的fbembed.dll
(或fbclient.dll
)与运行时位数不匹配(例如32位vs 64位)。
您确定要使用嵌入式Firebird吗?配置字符串的其余部分似乎建议您要连接到正常的Firebird服务器,在这种情况下ServerType=0
(或者只是将其关闭)更好,因为您没有对本机dll的依赖。