Я пытаюсь прочитать данные текстового файла с помощью «|» разделенный, я использую ниже код. Я м способен считывать данные из текстового файла после чтения при попытке поставить DataTable данных в DataView я получаю исключение типа «System.OutOfMemoryException» был брошен,Исключение типа «System.OutOfMemoryException» было выбрано при чтении данных из текстового файла
Может ли один предложить мне, как избежать этого исключения ,
string filepath = System.Configuration.ConfigurationManager.AppSettings["data"];
if (filepath != "")
{
DataTable dt = new DataTable("file");
string[] columns1 = null;
var lines = File.ReadAllLines(filepath);
int Count = lines.Length;
//here taking columns and adding to table
if (lines.Count() > 0)
{
columns1 = lines[0].Split(new char[] { '|' });
foreach (var column in columns1)
dt.Columns.Add(column);
}
for (int i = 1; i < lines.Count(); i++)
{
DataRow dr = dt.NewRow();
string[] values = lines[i].Split(new char[] { '|' });
for (int j = 0; j < values.Count() && j < columns1.Count(); j++)
{
dr[j] = values[j];
}
}
dt.Rows.Add(dr);
DataView View = new DataView(dt);
//Here I m getting "Exception of type 'System.OutOfMemoryException' was thrown."
DataTable MD = View.ToTable("MD", false, "ID", "Description")
DataTable MM = View.ToTable("MM", false, "RecordNumber", "Item description")
if (MD.Rows.Count > 0)
{
InsertData(MD);
}
if (MM.Rows.Count > 0)
{
InsertData1(MM);
}
}
StackTrace: -
at System.Collections.Generic.List`1.set_Capacity(Int32 value)
at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List`1.Add(T item)
at System.Data.DataView.ToTable(String tableName, Boolean distinct, String[] columnNames)
что размер файла? – wudzik
Линия исключения (полная трассировка). Проблема, скорее всего, размер файла или количество записей в вашем файле, превышающее максимальное количество элементов, разрешенных в списке. – Kilazur
Я пытаюсь прочитать текстовый файл, содержащий 5 записей записей. –