2010-04-17 125 views
1

我已將txt文件存儲到sql server數據庫。 我需要逐行讀取txt文件以獲取其中的內容。 我的代碼:如何從數據庫中讀取txt文件(逐行)

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文件以獲取txt文件內容,而不是使用Path值。

+2

@Ranjana:您可以編輯您的問題,沒必要再問他們!? http://stackoverflow.com/questions/2657583/how-to-read-the-txt-file-from-databasebyte-to-filestream – 2010-04-17 07:17:11

回答

1

鑑於日的事實,你有一個字節數組的文件,你可以利用MemoryStream Class

喜歡的東西

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

還要確保使用using Statement (C# Reference)

定義範圍,在其之外將處置一個或多個物體。

using語句允許程序員 指定使用資源的對象 應該釋放 它們。提供給使用 語句的對象必須實現 IDisposable接口。此接口 提供Dispose方法,其中 應釋放對象的資源。

0

你可以嘗試這樣的事情在你foreach結束:

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