2014-05-14 32 views
1

我正在使該網站下載字幕。現在我有這個功能上傳:使用數據庫表中的信息下載.srt文件

using (StreamReader sr = new StreamReader(file.InputStream, Encoding.Default, true)) 
{ 
    string line; 
    while ((line = sr.ReadLine()) != null) 
    { 
     srtContent += line + '\0'; 
    } 
} 

SubtitleFile item = new SubtitleFile(); 
UpdateModel(item); 
item.state = State.Edit; 
item.SubtitleText = srtContent; 
item.name = char.ToUpper(item.name[0]) + item.name.Substring(1); 
repo.AddSubtitle(item); 
repo.Save(); 

ModelState.Clear(); 

而這個上傳srtContent在我DATABSE有個地方叫SubtitleText,

現在我有點需要能夠重新下載此。 到目前爲止,我只有一個指向視圖的超鏈接,我稱之爲下載器, 但這就是我爲下載器獲得的所有內容。

什麼,我缺少的是採取定ID的信息,並做一些的StreamWriter或東西,並把信息返回到一個新的文件,它會是這樣的

Model.name + '.srt' 

方式與我最初複製的所有文本相同。

我希望這可以理解。所有建設性的幫助appriciated。

回答

1

鑑於信息存儲在數據庫中,我們將使用System.Data.SqlClient命名空間。

SqlConnection myConnection = new SqlConnection("your connection string"); 
myConnection.Open(); 
string id = "my_id"; 
string text; 
string fileName; 
SqlCommand query = new SqlCommand(); 
query.CommandText = "SELECT FileName, SubtitleText FROM Subtitles WHERE ID = '@id'"; 
query.Parameters.AddWithValue("@id", id); 
query.Connection = myConnection; 
SqlDataReader data = query.ExecuteReader(); 
while (data.Read()) { 
text = (string)data["SubtitleText"]; 
fileName = (string)data["FileName"]; 
} 
using (FileStream fs = File.Create(file + ".srt")) { 
File.WriteAllText(file, text); 
} 

這是一種不好的代碼,但它大致給出了可以做,以實現自己的目標是什麼想法(我的理解是*)。如果ID是int,則可以將其更改爲。

附錄:英語不是我的第一語言,所以原諒錯誤。

相關問題