firebird 数据库 C# 开发报错

1、找不到dll

Unable to load DLL 'fbembed' or one of its dependencies: 找不到指定的模块。 (0x8007007E)

2、磁盘结构错误发现式12 不支持13的错误

firebird下载的exe选择3的版本。不要选5的版本。

3、占用,多个程序同时访问firebird数据库,报错

FirebirdSql.Data.FirebirdClient.FbException:“I/O error during "CreateFile (open)" operation for file "C:\USERS\PUBLIC\DOCUMENTS\CIRRIS\DATABASE\EASYWIRE.FDB"
Error while trying to open file”

IscException: I/O error during "CreateFile (open)" operation for file "C:\USERS\PUBLIC\DOCUMENTS\CIRRIS\DATABASE\EASYWIRE.FDB"
Error while trying to open file

原因:connectionString 不对。

connectionString = $@"User=sysdba;Password=123456;Database={db_firebirdPath};ServerType=1;"; 不能多个访问

解决办法:

connectionString = $@"User=SYSDBA;Password=123456;Database={db_firebirdPath};DataSource=localhost;Port=3050;Dialect=3;Charset=UTF8;"; //可用多个访问

4、获取文件最后修改日期时间不准

.net core 8

不靠谱的代码.

//获取文件最后修改日期,判断是否有数据变化            
//FileSystemInfo fileSystemInfo = new FileInfo(db_firebirdPath);  //判断最后修改日期时间不准
//DateTime lastWriteTime = fileSystemInfo.LastWriteTime;

 FileInfo fileInfo = new FileInfo(db_firebirdPath); //判断最后修改日期时间不准
 DateTime lastWriteTime = fileInfo.LastWriteTime;

DateTime lastWriteTime =   File.GetLastWriteTime(db_firebirdPath);  //判断最后修改日期时间不准

原因1:没有判断文件是否存在
如果不存在的文件路径 得出的最后修改时间就是错误的。时间是路径给错了。!!

原因2:windows窗体里面看最后修改日期没有变,C#读出来在变。数据库文件判断不准。
其他程序有打开这个数据库文件,但是explore里面没有变。搞不懂
解决办法:
不停查询数据库,判断数据库中测试时间,不用判断文件修改时间,不好后果:多个程序操作一个文件数据库,不安全报错。


c#程序里面访问查询了easywire.fdb,导致读取最后修改时间不准。

多个程序,操作文件数据库,报错如下图:

网络firebird服务器

C#数据库连接字符串可用参考数据库管理工具的配置连接的方式:

阅读剩余
THE END