由于ashx进行字符串拼接太麻烦,直接使用HTML模板,进行字符串替换。就不用在拼接的时候去写html标签。
public void ProcessRequest(HttpContext context)
{
//由于ashx进行字符串拼接太麻烦,直接使用HTML模板,进行字符串替换
context.Response.ContentType = "text/html";
//获取index.ashx页面传过来的值
int qid = Convert.ToInt32(context.Request.QueryString["id"]);
StringBuilder sb = new StringBuilder();
//拿到模板文件的路径:把虚拟路径转换成绝对路径
string path = context.Request.MapPath("/ShowTemp.html");
//打开路径文本文件,并读取所有行,返回字符串类型
string fileStr = File.ReadAllText(path);
#region 查询数据,拼接字符串。
string str = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
string sql = "select top(1) Id, UserName, PassWord from t_users where id=@id";
using (SqlConnection conn = new SqlConnection(str))
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.Add(new SqlParameter("@id", qid));
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//拼接字符串,使用占位符填充数据
sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>",
reader.GetInt32(0),
reader.GetString(1),
reader["password"]);
}
}
}
#endregion
//把拼接好的字符串,替换到HTML模板中
fileStr = fileStr.Replace("@Strtbody", sb.ToString());
context.Response.Write(fileStr);
}
根据ID查询成功。