2010-04-17 7 views
1

J'ai stocké le fichier txt dans la base de données du serveur SQL. J'ai besoin de lire le fichier txt ligne par ligne pour obtenir le contenu. mon code:comment lire le fichier txt à partir de la base de données (ligne par ligne)

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(); 

mais ici, je l'ai utilisé le FileStream à lire à partir du chemin particulier. mais j'ai enregistré le fichier txt au format octet dans ma base de données. comment lire le fichier txt en utilisant la valeur byte [] pour obtenir le contenu du fichier txt, au lieu d'utiliser la valeur Path.

+2

@Ranjana: Vous pouvez modifier vos questions, pas besoin de leur demander à nouveau !? http://stackoverflow.com/questions/2657583/how-to-read-the-txt-file-from-databasebyte-to-filestream –

Répondre

1

Compte tenu e fait que vous avez le fichier dans un tableau d'octets, vous pouvez utiliser MemoryStream Class

Quelque chose comme

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

Assurez-vous également d'utiliser using Statement (C# Reference)

Définit un portée, en dehors de laquelle un objet ou des objets seront disposés.

L'instruction à l'aide permet au programmeur de spécifier lorsque des objets qui utilisent les ressources devraient libérer les . L'objet fourni à l'instruction doit implémenter l'interface IDisposable . Cette interface fournit la méthode Dispose, qui doit libérer les ressources de l'objet.

0

Vous pouvez essayer quelque chose comme ça à la fin de votre foreach:

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