Divyay208 Ответов: 1

Как экспортировать 100 тысяч записей в csv файл или rdlc с помощью .NET


Привет,
когда я попытался экспортировать данные до 65000 записей в rdlc он работает нормально но если он превышает 65000 записей то я получаю исключение из памяти
Мне нужно экспортировать массовые данные в rdlc или csv файл с помощью .net есть ли какой нибудь альтернативный метод для достижения этой цели




Спасибо

Что я уже пробовал:

Я могу генерировать rdlc, если данных меньше
Ниже приведен код, который я использую для генерации rdlc
using (SqlConnection con = new SqlConnection(sqlConnectionString))
                                {
                                    con.Open();
                                    SqlCommand cmd = new SqlCommand("select query from report_query where query_id=@id", con);
                                    cmd.Parameters.AddWithValue("@id", id);
                                    string query = cmd.ExecuteScalar().ToString();

                                    cmd.CommandText = query;
                                    cmd.CommandTimeout = 0;
                                    dt.TableName ="ReportTable";
                                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                                    da.Fill(dt);
                                    con.Close();
                                }
                                
                                rvDataViewer.LocalReport.ReportPath = "Reports/ReportEX.rdlc";
                                rvDataViewer.LocalReport.DataSources.Clear();
                                rvDataViewer.LocalReport.DataSources.Add(new ReportDataSource("ReportEX", dt));
                                rvDataViewer.DataBind();
                                rvDataViewer.LocalReport.Refresh();

1 Ответов

Рейтинг:
0

________________

Разделенный запятыми файл:

using (SqlConnection con = new SqlConnection(sqlConnectionString))
			{
				con.Open();
				SqlCommand cmd = new SqlCommand("select query from report_query where query_id=@id", con);
				cmd.Parameters.AddWithValue("@id", id);
				string query = cmd.ExecuteScalar().ToString();
				cmd.CommandText = query;
				cmd.CommandTimeout = 0;
								 
				SqlDataReader rReader = cmd.ExecuteReader();
				string reportName = string.Format("ReportEX_{0}.csv" , id);

				while(rReader.Read())
				{
					StringBuilder oneRow = new StringBuilder();
					for(int ii = 0; ii < rReader.FieldCount; ii++)
					{
						oneRow.AppendFormat("{0},", rReader[ii]);
					}
					oneRow.Append(Environment.NewLine);
					File.AppendAllText(reportName, oneRow.ToString());
				}
			}