2

私はado.netコードリストを持っています:

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 ファイルがまだプログラムによって保持されているのはなぜですか? 誰かがそれを開こうとすると、エラー メッセージは「ファイル アクセスが拒否されました」です。アプリケーションを閉じた場合にのみ、別のアプリケーションがアクセスできます

4

2 に答える 2

1

私は問題を解決しました。実行した点は 2 つあります: - Heinzi が書いたように
すべてのコードを変更しました - からの情報を使用しましたado.net
support.microsoft.com/kb/260856

それらをたどったところ、問題は解消されました。助けてくれてありがとう!

于 2012-06-28T12:24:39.097 に答える