-1
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();
이 파일을 재생성 할 때 예외가 발생할 수 있습니다. 예외가 : "파일이 다른 프로세스에서 사용되었습니다." 이 프로세스를 종료하거나이 문제를 해결할 수있는 방법을 찾으십시오.
감사합니다.
관련 코드 표시. 오류를 더 자세히 말하면 "열린 프로세스"가 필요 없습니다. –
당신의 연결이 아마도 풀링되어 있기 때문에, 닫기만으로는 충분하지 않습니다. [ReleaseObjectPool] (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.releaseobjectpool%28v=vs.100%29.aspx)을 참조하십시오. –