-1
我有一個Web應用程序,它創建了一個Access數據庫。 當我創建這個數據庫時,我首先必須刪除該文件,如果它存在,然後重新創建它。我想刪除文件時出錯
if (File.Exists(DataSourcePath + fileName))
File.Delete(DataSourcePath + fileName);
string cnnStr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + DataSourcePath + fileName + "; Jet OLEDB:Engine Type=5";
var catType = Type.GetTypeFromProgID("ADOX.Catalog");
object o = Activator.CreateInstance(catType);
catType.InvokeMember("Create", BindingFlags.InvokeMethod, null, o, new object[] { cnnStr });
OleDbConnection cnn = new OleDbConnection(cnnStr);
var cmd = cnn.CreateCommand();
cnn.Open();
cmd.CommandText = "CREATE TABLE TblInfoCompany (Name TEXT, Family TEXT)";
cmd.ExecuteNonQuery();
cmd.Dispose();
cnn.Close();
cnn.Dispose();
當我重新創建這個文件時,我可以得到一個異常。 異常說:「該文件在另一個進程中使用。」 請幫我關閉此過程或找到解決此問題的方法。
謝謝。
顯示相關代碼。並且從字面上引用錯誤,並沒有涉及「Open Process」。 –
您的連接可能是合併的,因此關閉它是不夠的。請參閱[ReleaseObjectPool](http://msdn.microsoft.com/zh-cn/library/system.data.oledb.oledbconnection.releaseobjectpool%28v=vs.100%29.aspx) –