Загрузка файла, чтение в память и использование в качестве текстового файла - есть ли лучший способ?

У меня есть размещенное в интранете веб-приложение, в котором пользователь будет загружать текстовый файл с разделенными пробелами данными в 5 столбцах. Я не хочу сохранять файл, поэтому я хотел просто использовать его в памяти. Я пробовал много разных примеров в интернете, но ни один из них не работал Наконец сотрудник показал мне, как это сделать. Вот код, и мне интересно, есть ли лучший способ сделать это. В конце концов, все, что мне нужно, - это способ связать данные с сеткой или повторителем для просмотра и последующего хранения в базе данных (SQL Server).

Идентификатор тега asp загружаемого файла - SurveyFileUpload
SurveyDate является полем ввода asp:

Int32 fileLen = SurveyFileUpload.PostedFile.ContentLength;

// Create a byte array to hold the contents of the file.
Byte[] buffer = new Byte[fileLen];

// Initialize the stream to read the uploaded file.
Stream s = SurveyFileUpload.FileContent;

// Read the file into the byte array.
s.Read(buffer, 0, fileLen);

// Convert byte array into characters.
ASCIIEncoding enc = new ASCIIEncoding();
string str = enc.GetString(buffer);
testReadFile(str, db_surveyDate.Text);

protected void testReadFile(string inFileString, string inSurveyDate)
{
    string[] lines = inFileString.Split('\n');
    curFileListing.InnerHtml = "";
    int curRow = 1;
    var readings = from line in lines
       select new
       {
           // this is just for display purposes to show the number of rows on the page
           Row = curRow++,
           SurveyDate = inSurveyDate,
           ItemNumber = Regex.Split(line, "[ ]+")[0],
           Northing = Regex.Split(line, "[ ]+")[1],
           Easting = Regex.Split(line, "[ ]+")[2],
           Elevation = Regex.Split(line, "[ ]+")[3],
           Name = Regex.Split(line, "[ ]+")[4]
       };
    saveFileData.Visible = true;
    GridView fileData = new GridView();
    fileData.DataSource = readings;
    fileData.DataBind();
    fileData.AlternatingRowStyle.BackColor = 
           System.Drawing.ColorTranslator.FromHtml("#eee");
    curFileListing.Controls.Add(fileData);
}

Это работает хорошо. Я не очень разбираюсь в LINQ, и мне было тяжело с частью файлового потока.

Ответы на вопрос(3)

Ваш ответ на вопрос