Я пытаюсь экспортировать данные таблицы SQL в текстовый файл с разделителем '~' в коде C#. Когда данные мелкие, его штраф. Когда он огромен, он выбрасывает исключение из памяти.Экспорт данных таблицы в текстовый файл + C# + SQL Server
Мой код:
public static void DataTableToTextFile(DataTable dtToText, string filePath)
{
int i = 0;
StreamWriter sw = null;
try
{
sw = new StreamWriter(filePath, false); /*For ColumnName's */
for (i = 0; i < dtToText.Columns.Count - 1; i++)
{
sw.Write(dtToText.Columns[i].ColumnName + '~');
}
sw.Write(dtToText.Columns[i].ColumnName + '~');
sw.WriteLine(); /*For Data in the Rows*/
foreach (DataRow row in dtToText.Rows)
{
object[] array = row.ItemArray;
for (i = 0; i < array.Length - 1; i++)
{
sw.Write(array[i].ToString() + '~');
}
sw.Write(array[i].ToString() + '~');
sw.WriteLine();
}
sw.Close();
}
catch (Exception ex)
{
throw new Exception("");
}
}
Есть ли лучший способ сделать это в хранимой процедуре или BCP команды?
вы попробовали написать несколько строк, закрыв затем открытие файла? – griegs
Что огромно? Каков размер набора записей, когда он освобождается? – Rob