В итоге переделал оба метода таким образом. Первый:
static public DataTable ColumnsCreating()
{
DataTable dataTable = new DataTable("student");
// инициализация массива названий столбцов
string[] columnHeaders = { "ФИО", "№ зачетной книжки",
"Специальность", "1 зачет", "2 зачет", "3 зачет",
"4 зачет", "5 зачет", "1 экзамен", "2 экзамен",
"3 экзамен", "4 экзамен", "5 экзамен"};
// автоматическое создание столбцов
for (int i = 0; i < columnHeaders.Length; i++)
dataTable.Columns.Add(columnHeaders[i]);
return dataTable;
}
Второй:
static public DataTable FileToTable()
{
try
{
DataTable dt = new DataTable();
string[] list;
string name = "database.txt";
string buffer = "";
dt = CreatingForm.ColumnsCreating();
FileStream file = new FileStream(name, FileMode.OpenOrCreate);
using (StreamReader streamReader = new StreamReader(file))
{
while (!streamReader.EndOfStream)
{
buffer = streamReader.ReadLine();
list = buffer.Split(';');
DataRow row = dt.NewRow();
for (int i = 0; i < list.Length; i++)
row[i] = list[i];
dt.Rows.Add(row);
}
return dt;
}
}
catch
{
MessageBox.Show("Произошла ошибка при чтении файла");
return null;
}
}