2017-05-31 83 views
0

以下是我的控制檯應用程序代碼以從SQL獲取數據。從數據讀取器向前端獲取數據

 using (SqlConnection con = new SqlConnection("server=fcpcdb02; database=campus6; user id=; password=;")) 
     { 
      using (SqlCommand cmd = new SqlCommand()) 
      { 
       cmd.Connection = con; 

       cmd.CommandText = "select * from [Campus6].[dbo].[TRANSCRIPTDETAIL] where FINAL_GRADE='I' and ACADEMIC_YEAR = '2017' and ACADEMIC_TERM='02TERM'"; 
       cmd.Connection.Open(); 
       using (SqlDataReader sqlRdr = cmd.ExecuteReader()) 
       { 
        // table = new DataTable(); 
        // table.Load(reader); 
        if (sqlRdr.HasRows) 
        { 
         while (sqlRdr.Read()) 
         { 
          id = (sqlRdr["PEOPLE_CODE_ID"].ToString()); 
          subname = (sqlRdr["EVENT_LONG_NAME"].ToString()); 
          eventid = (sqlRdr["EVENT_ID"].ToString()); 

          year1 = (sqlRdr["ACADEMIC_YEAR"].ToString()); 
          term = (sqlRdr["ACADEMIC_TERM"].ToString()); 
          session = (sqlRdr["ACADEMIC_SESSION"].ToString()); 
          subtype = (sqlRdr["EVENT_SUB_TYPE"].ToString()); 
          section = (sqlRdr["SECTION"].ToString()); 
          orgcode = (sqlRdr["ORG_CODE_ID"].ToString()); 
         } 

這是我的代碼來生成HTML文件

TextWriter tw = File.CreateText(@"C:\Users\sganatra\Documents\Visual Studio 2015\Projects\incompletechange\files\" + year1 + "" + term + ".html"); 


          string template = System.IO.File.ReadAllText((@"C:\Users\sganatra\Documents\Visual Studio 2015\Projects\incompletechange\files\changegrade.html")); 

          tw.WriteLine("" + template + ""); 
          Console.WriteLine("Text created"); 
          tw.Close(); 
          Console.WriteLine(Console.Read()); 

現在想來我試圖做的就是從數據讀取器的值,並在下載之前將其存儲在HTML中。我隱藏了幾個選項,他們爲.aspx文件工作,我得到的數據,但是當我下載它轉換成html我看不到任何數據。

+0

這是您最小的,完整的和可驗證的代碼示例嗎?通過以下https://stackoverflow.com/help/mcve任何機會改善您的問題? –

+0

aspx已經插入標籤,因此它們是html。直的文本文件沒有標籤,您必須在軟件中添加標籤。看到下面發佈的示例將數據錶轉換爲html:https://stackoverflow.com/questions/9792882/creating-html-from-a-datatable-using-c-sharp – jdweng

+1

@QualityCatalyst我刪除了不需要的代碼。 – Naive

回答

0

您需要做的是用佔位符填充模板,一旦將該模板加載到您的應用程序中,您將需要使用Replace(string, string)方法來填充空白。

請注意,您的查詢可能返回大於1分的記錄,你讀者程序只是要通過迭代所有的記錄和您的字符串變量要包含的最後一個記錄的值。如果是這種情況,您可能需要重新考慮您的總體設計。如果你想寫出所有這些記錄,模板系統將需要在'while(Read)'循環內

在下面的不完整的例子中,我將在我的模板中的佔位符包圍雙英鎊符號(即##Placeholder##)。

// earlier code 
string template = System.IO.File.ReadAllText((@"C:\Users\sganatra\Documents\Visual Studio 2015\Projects\incompletechange\files\changegrade.html")); 

template.Replace("##id##", id); 
template.Replace("## subname##", subname); 
template.Replace("##eventid##", eventid); 
// and so on for year1 => orgcode 

tw.WriteLine("" + template + ""); 
// and the rest of your code