Я создаю файл доступа с некоторыми полями и вставляю в него несколько записей, и хочу вернуть его в виде веб-ответа в веб-формах Asp.net.
Я сделал это:
CatalogClass cat = new CatalogClass();
ADOX.Table table = new ADOX.Table();
table.Name = "Table1";
table.Columns.Append("Field1");
table.Columns.Append("Field2");
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "DataBase\\" + "t" + ".mdb;";
cat.Create(str);
cat.Tables.Append(table);
using (OleDbConnection connection = new OleDbConnection(str))
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Table1 (Field1, Field2) VALUES (1, 2)";
connection.Open();
cmd.ExecuteNonQuery();
connection.Dispose();
connection.Close();
}
cat.ActiveConnection = null;
cat = null;
table = null;
string fileName = AppDomain.CurrentDomain.BaseDirectory + "DataBase\\" + "t" + ".mdb";
Response.AddHeader("Content-Disposition",
string.Format("attachment; filename={0}", fileName));
Response.TransmitFile(fileName);
Response.End();
Но когда я хочу вернуть его как ответ, я вижу следующую ошибку:
Процесс не может получить доступ к файлу, потому что он используется другим
процесс.
Я даже попробовал это:
Marshal.ReleaseComObject(cat);
Но это не сработало.
Как это решить?