我是 C# 新手,在连接到 Firebird 数据库时遇到问题。我想让我的程序访问 Firebird 数据库 [FDB 格式文件]。我有问题,请看下面的代码:
File.Copy(pathway, new_pathway, true);
FbConnection addDetailsConnection = new FbConnection("User=sysdba;Password=masterkey;Dialect=3;Database= " + new_pathway +
";DataSource=localhost;" );
string SQLCOMMAND = " SELECT UOM FROM ST_ITEM_UOM WHERE CODE = 'ANT'";
addDetailsConnection.Open();
FbCommand readCommand = new FbCommand(SQLCOMMAND, addDetailsConnection);
FbDataReader myreader = readCommand.ExecuteReader();
while (myreader.Read())
{
MessageBox.Show(myreader[0].ToString());
}
myreader.Close();
readCommand.Dispose();
addDetailsConnection.Close();
addDetailsConnection.Dispose();
这段代码让我可以读取我的 FDB 文件并提取数据。当代码第一次执行时,没有错误或问题,但是当我再次执行时,显示此错误:
The process cannot access the file 'C:\Users\ACC-0001.FDB' because it is being used by another process.
最佳答案
您可以使用 Handle检查哪个程序正在锁定文件。这可能是由您的代码或您机器上运行的另一个进程引起的。
工具识别流程,例如:
C:>handle.exe c:\test.xlsx
Handle v3.46 Copyright (C) 1997-2011 Mark Russinovich Sysinternals - www.sysinternals.com
EXCEL.EXE pid: 3596 type: File 414: C:\test.xlsx
如发现here .
如果问题出在您的代码中,请确保您处理并关闭所有连接,最好在 using
部分中使用它们:
using (FbConnection addDetailsConnection = new FbConnection("..."))
{
// do work
}
可以找到有关使用 using
的更多详细信息 here .
关于c# - 该进程无法访问文件 'filename',因为它正被另一个进程使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255614/