以下是我的控制台应用程序代码,用于从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 :(得分:0)
您需要做的是使用占位符填充模板,一旦将该模板加载到您的应用程序中,您将需要使用Replace(string, string)
方法填充空白。
请注意,您的查询可能会返回超过1条记录,并且您的 reader 例程正在遍历所有记录,并且您的字符串变量将包含最后一条记录的值。如果是这种情况,您可能需要重新考虑您的总体设计。如果你想写出所有这些记录,模板系统需要在'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