как прочитать текстовый файл из базы данных (строка за строкой) - PullRequest
1 голос
/ 17 апреля 2010

Я сохранил текстовый файл в базу данных сервера SQL. Мне нужно читать текстовый файл построчно, чтобы получить содержание в нем. мой код:

DataTable dtDeleteFolderFile = new DataTable();
dtDeleteFolderFile = objutility.GetData("GetTxtFileonFileName", new object[] { ddlSelectFile.SelectedItem.Text }).Tables[0];

foreach (DataRow dr in dtDeleteFolderFile.Rows)
{
  name = dr["FileName"].ToString();
  records = Convert.ToInt32(dr["NoOfRecords"].ToString());
  bytes = (Byte[])dr["Data"];
}

FileStream readfile = new FileStream(Server.MapPath("txtfiles/" + name), FileMode.Open);

StreamReader streamreader = new StreamReader(readfile);
string line = "";
line = streamreader.ReadLine();

но здесь я использовал FileStream, чтобы прочитать из Конкретного пути. но я сохранил текстовый файл в байтовом формате в моей базе данных. как прочитать txt-файл, используя значение byte [] для получения содержимого txt-файла, вместо использования значения Path.

Ответы [ 2 ]

1 голос
/ 17 апреля 2010

Учитывая тот факт, что у вас есть файл в байтовом массиве, вы можете использовать MemoryStream Class

Что-то вроде

using (MemoryStream m = new MemoryStream(buffer))
using (StreamReader sr = new StreamReader(m))
{
    while (!sr.EndOfStream)
    {
        string s = sr.ReadLine();
    }    
}

Также убедитесь, что вы используете , используя Statement (C # Reference)

Определяет область, за пределами которой объект или объекты будут удалены.

Использование оператора позволяет программист, чтобы указать, когда объекты что использование ресурсов должно освободить их. Объект, предоставленный для использования заявление должно реализовывать IDisposable интерфейс. Этот интерфейс предоставляет метод Dispose, который должен освободить ресурсы объекта.

0 голосов
/ 17 апреля 2010

Вы можете попробовать что-то подобное в конце вашего foreach:

String txtFileContent = Encoding.Unicode.GetString((Byte[])dr["Data"]);
...