Veri setimi excel'e dönüştürmeye ve o excel'i indirmeye çalıştım. Bu sorun nasıl çözülür? .. Lütfen bana yardım edin ...
Ben aspx ekranımda bu metodu çağırıyorum, bu metotla aynı istisna oluştu.
Bu genel void ExportDataSet (DataSet ds) işlevini birçok aspx ekranında çağırıyorum ve ayrıca çalışma zamanında ortaya çıkan istisnalar için hata günlüğü yöntemini sürdürüyorum, bu istisnalar bir .txt dosyalarına yazılır. Böylece, aynı istisna tüm aspx ekranının txt dosyalarında günlüğe kaydedilir. Bu istisnanın, yöntem bildirilen sınıf dosyasından aspx'e atılmasını önlemek istiyorum. Sadece bu istisnayı yöntem bildirim sınıf dosyamın kendisinde ele almak istiyorum.
ASPX Dosya Yöntemi çağrısı: excel.ExportDataSet (dsExcel);
Yöntem Tanımı:
public void ExportDataSet(DataSet ds)
{
try
{
string filename = "ExcelFile.xls";
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Charset = "";
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
GridView dg = new GridView();
dg.DataSource = ds.Tables[0];
dg.DataBind();
dg.RenderControl(htw);
// response.Write(style);
response.Write(sw.ToString());
response.End(); // Exception was Raised at here
}
}
}
catch (Exception ex)
{
string Err = ex.Message.ToString();
EsHelper.EsADLogger("HOQCMgmt.aspx ibtnExcelAll_Click()", ex.Message.ToString());
}
finally
{
}
}
Response.Endbkz. Stackoverflow.com/a/3917180/2864740 (ve diğer yanıtlar); yığının nasıl çözüldüğü için istisnanın "beklenilmesi gereken" olduğunu unutmayın (bu nedenle bu istisnayı yakalamayın). Yine de [diğer] istisnaları yakalamak istiyorsanız, şunu kullanın:.. catch (ThreadAbortException) { throw; /* propagate */ } catch (Exception ex) { .. }