代码如下:
FileUpload2.SaveAs(path);
import_sql = "begin tran ;insert into manage_student_info select 字段略 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=" + @path + "',Sheet1$) ;commit tran";
SqlCommand comm = new SqlCommand(import_sql, conn);
comm.Parameters.AddWithValue("@path", path);
try
{
conn.Open();
comm.ExecuteNonQuery();
comm.Dispose();
conn.Close();
FileUpload2.PostedFile.InputStream.Close();
FileUpload2.PostedFile.InputStream.Dispose();
FileUpload2.Dispose();
if (File.Exists(path))
File.Delete(path);
}
我要实现:先上传文件到服务器--》把该文件导入数据库--》删除该文件
问题:第一和二步骤可以实现,删除该文件是出现问题,错误提示:
文件“C:\inetpub\wwwroot\by\TempFile\admin学生信息表_样表.xls”正由另一进程使用,因此该进程无法访问该文件。 怎么修改代码呢?谢谢!
FileUpload2.SaveAs(path);
import_sql = "begin tran ;insert into manage_student_info select 字段略 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=" + @path + "',Sheet1$) ;commit tran";
SqlCommand comm = new SqlCommand(import_sql, conn);
comm.Parameters.AddWithValue("@path", path);
try
{
conn.Open();
comm.ExecuteNonQuery();
comm.Dispose();
conn.Close();
FileUpload2.PostedFile.InputStream.Close();
FileUpload2.PostedFile.InputStream.Dispose();
FileUpload2.Dispose();
if (File.Exists(path))
File.Delete(path);
}
我要实现:先上传文件到服务器--》把该文件导入数据库--》删除该文件
问题:第一和二步骤可以实现,删除该文件是出现问题,错误提示:
文件“C:\inetpub\wwwroot\by\TempFile\admin学生信息表_样表.xls”正由另一进程使用,因此该进程无法访问该文件。 怎么修改代码呢?谢谢!
if (File.Exists(path))
File.Delete(path);
conn.Dispose();
试试
FileUpload2.PostedFile.InputStream.Close();
FileUpload2.PostedFile.InputStream.Dispose();
FileUpload2.Dispose();
后连续导入20次没有出现进程问题,目前保留这个非常笨的办法,谢谢以上的各位朋友,
如果不是频繁操作的,如前面所说加上GC.Collect()回收后,
应该是没问题的
FileUpload2.Dispose();
import_sql = "begin tran ;insert into manage_student_info select 字段略 from O 改成这样试试