从数据读取器获取数据到前端

时间:2017-05-31 21:59:06

标签: c# html console-application datareader

以下是我的控制台应用程序代码,用于从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我看不到任何数据。

1 个答案:

答案 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