gpt4 book ai didi

c# 应用程序持有文件,即使我已经完成了它的工作

转载 作者:行者123 更新时间:2023-12-03 21:50:40 24 4
gpt4 key购买 nike

我有一个 ado.net 代码 list :

OleDbConnection oconn = new OleDbConnection();
// oconn.ConnectionString ="Driver={Microsoft Visual FoxPro Driver};Provider=vfpoledb.1;SourceType=DBF;SourceDB=" + pelna_sciezka + ";Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oconn.ConnectionString = "Provider=vfpoledb.1;Data Source=" + pelna_sciezka + ";Collating Sequence=machine";
oconn.Open();
OleDbCommand ocmd = oconn.CreateCommand();
string na = TBNazwaKonta.Text.Replace("\n","");
na = na.Replace("\r","") ;
string ks2 = ks.Replace("\n","");
ks2 = ks2.Replace("\r", "");
OleDbCommand dbCmdNull = oconn.CreateCommand();
dbCmdNull.CommandText = "SET NULL OFF";
dbCmdNull.ExecuteNonQuery();
string zapytanie = @"insert into " + @pelna_sciezka + @" (rk, Na,Ks) values (0,'" + na + "','" + ks2 +"')";
ocmd.CommandText = zapytanie;
ocmd.ExecuteNonQuery();
oconn.Close();

它运行良好,没有任何问题。但是我使用的 dbf 文件正在被另一个程序使用。为什么如果我执行查询并关闭连接,dbf 文件仍由程序持有?如果有人想打开它,错误消息是“文件访问被拒绝”。只有我关闭应用程序,另一个才能访问

最佳答案

您没有关闭 OleDbCommand。与 SqlCommands 相反,它实际上是可选的,这确实对 OleDb 有影响。

我推荐使用using关键字;这确保所有资源在 block 结束时自动释放。作为额外的好处,它确保在发生异常时也释放资源,因此,您的手动 Close 命令将永远不会到达。

using (OleDbConnection oconn = new OleDbConnection()) {
oconn.ConnectionString = "Provider=vfpoledb.1;Data Source=" + pelna_sciezka + ";Collating Sequence=machine";
oconn.Open();

using (OleDbCommand ocmd = oconn.CreateCommand()) {
string na = TBNazwaKonta.Text.Replace("\n","");
na = na.Replace("\r","") ;
string ks2 = ks.Replace("\n","");
ks2 = ks2.Replace("\r", "");

using (OleDbCommand dbCmdNull = oconn.CreateCommand()) {
dbCmdNull.CommandText = "SET NULL OFF";
dbCmdNull.ExecuteNonQuery();
} // closes dbCmdNull

string zapytanie = @"insert into " + @pelna_sciezka + @" (rk, Na,Ks) values (0,'" + na + "','" + ks2 +"')";
ocmd.CommandText = zapytanie;
ocmd.ExecuteNonQuery();
} // closes ocmd
} // closes connection

关于c# 应用程序持有文件,即使我已经完成了它的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11240560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com