一、建立空网站
二、主页实现
1.为空网站创建实现主页页面一般处理程序
2.详情页代码实现
(1)设置配置文件
<connectionStrings>
<add name="MySchoolDB" connectionString="server=.;database=MySchool;uid=sa;pwd=123"/>
</connectionStrings>
(2)编码ProcessRequest 方法
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html"; //设置内容类型为HTML
string str = ConfigurationManager.ConnectionStrings["MySchoolDB"].ConnectionString; //数据库连接字符串
StringBuilder sb = new StringBuilder(); //html 代码拼接
sb.Append("<html><head></head><body><a href='AddScore.html'>添加</a>");
sb.Append("<table><tr><th>ScoreID</th><th>StudentNo</th><th>SubjectScore</th><th>操作</th></tr>");
using (SqlConnection conn = new SqlConnection(str)) //创建数据库连接对象
{
conn.Open(); //打开数据库
string strSql = @"Select
ScoreID,StudentNo,SubjectScore
from
Score";
using (SqlCommand cmd = new SqlCommand(strSql, conn)) //创建数据库操作对象
{
using (var reader = cmd.ExecuteReader()) //执行sql语句
{
while (reader.Read()) //循环读取数据,并进行html拼接
{
sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td><a href='ShowDetail.ashx?id={1}'>详情</a></td><td><a onclick='return confirm(\"是否删除?\")' href='Delete.ashx?id={0}'>删除</a></td> <td><a href='Edit.ashx?id={0}'>修改</a></td></tr>",
reader["ScoreID"],
reader["StudentNo"],
reader["SubjectScore"]);
}
}
}
}
sb.Append("</table>");
sb.Append("</body></html>");
context.Response.Write(sb.ToString()); //发送给浏览器显示
}
实现效果
三、添加功能
1.为空网站创建实现添加页面一般处理程序
2.代码实现ProcessReques方法
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
//获取页面数据
int scoreID = int.Parse(context.Request["ScoreID"]);
string studentNo = context.Request["StudentNo"].ToString();
int courseID = int.Parse(context.Request["SubjectScore"]);
int subjectScore = int.Parse(context.Request["SubjectScore"]);
DateTime examDate = DateTime.Parse(context.Request["ExamDate"]);
//将数据插入数据库
string constr = ConfigurationManager.ConnectionStrings["MySchoolDB"].ConnectionString;
string sqlStr = @"Insert into Score values(@ScoreID,@StudentNo,@CourseID,@SubjectScore,@ExamDate)";
SqlParameter[] par =
{
new SqlParameter("@ScoreID",SqlDbType.Int){Value=scoreID},
new SqlParameter("@StudentNo",SqlDbType.NVarChar,64){Value=studentNo},
new SqlParameter("@CourseID",SqlDbType.Int){Value=courseID},
new SqlParameter("@SubjectScore",SqlDbType.Int){Value=subjectScore},
new SqlParameter("@ExamDate",SqlDbType.DateTime){Value=examDate}
};
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand comm = new SqlCommand(sqlStr, conn))
{
comm.CommandType = CommandType.Text;
comm.Parameters.AddRange(par);
conn.Open();
int count = comm.ExecuteNonQuery();
}
}
//插入成功后,跳转到主页面
context.Response.Redirect("HomepageHandler.ashx");
}
四、详情功能实现
1. 为空网站创建实现详情页面一般处理程序
2.代码实现
(1)ProcessRequest方法实现
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string idStr = context.Request.QueryString["id"]; //难当前id
int id = int.Parse(idStr);
string str = ConfigurationManager.ConnectionStrings["MySchoolDB"].ConnectionString;
string sqlStr = @"Select
StudentNo,StudentName,GradeID
from
Student
where
StudentNo=@id";
StringBuilder sb = new StringBuilder();
using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, str))
{
adapter.SelectCommand.Parameters.Add("@id", id); //传递参数
DataTable td = new DataTable();
adapter.Fill(td);
sb.AppendFormat("<tr><td>StudentNo:</td><td>{0}</td></tr>", td.Rows[0]["StudentNo"]);
sb.AppendFormat("<tr><td>StudentName:</td><td>{0}</td></tr>", td.Rows[0]["StudentName"]);
sb.AppendFormat("<tr><td>GradeID:</td><td>{0}</td></tr>", td.Rows[0]["GradeID"]);
}
string path = context.Request.MapPath("/ShowDetilTemp.html"); //把相对路径转成磁盘上的绝对路径
string textTemp = File.ReadAllText(path); //通过绝对路径读取html文件
string result = textTemp.Replace("@strBody", sb.ToString()); //替换
context.Response.Write(result);
}
(2)html 代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table>
@strBody
</table>
</body>
</html>
3.效果
五、删除功能
1. 为空网站创建实现删除页面一般处理程序
2.代码实现
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
int id = int.Parse(context.Request["id"]);
string str = ConfigurationManager.ConnectionStrings["MySchoolDB"].ConnectionString;
using (SqlConnection conn = new SqlConnection(str))
{
conn.Open();
string strSql = @"delete from Score where ScoreID=@id";
using (SqlCommand cmd = new SqlCommand(strSql, conn))
{
cmd.Parameters.Add(new SqlParameter("@id", id));
int rows = cmd.ExecuteNonQuery();
if (rows>0)
{
context.Response.Redirect("DemoHandler.ashx");
}
else
{
context.Response.Write("删除失败");
}
}
}
}
五、修改功能
1. 为空网站创建实现修改页面一般处理程序
2.代码实现
(1)ProcessRequest方法实现
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string idStr = context.Request.QueryString["id"]; //难当前id
int id = int.Parse(idStr);
string str = ConfigurationManager.ConnectionStrings["MySchoolDB"].ConnectionString;
string strSql = @"Select
ScoreID,StudentNo,SubjectScore
from
Score
where
ScoreID=@id";
StringBuilder sb = new StringBuilder();
using (SqlDataAdapter adapter = new SqlDataAdapter(strSql, str))
{
adapter.SelectCommand.Parameters.Add("@id", id); //传递参数
DataTable dt = new DataTable();
adapter.Fill(dt);
string strResult = File.ReadAllText(context.Request.MapPath("EditTemp.html"));
strResult = strResult.Replace("@ScoreID", dt.Rows[0]["ScoreID"].ToString());
strResult = strResult.Replace("@StudentNo", dt.Rows[0]["StudentNo"].ToString());
strResult = strResult.Replace("@SubjectScore", dt.Rows[0]["SubjectScore"].ToString());
context.Response.Write(strResult);
}
}
(2)html实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="/ProcessEdit.ashx" method="post">
<input type="hidden" name="ScoreID" value="@ScoreID" />
<table>
<!--<tr>
<td>ScoreID </td>
<td>
<input type="text" name="ScoreID" value="@ScoreID" />
</td>
</tr>-->
<tr>
<td>StudentNo</td>
<td>
<input type="text" name="StudentNo" value="@StudentNo" disabled="disabled" />
</td>
</tr>
<tr>
<td>SubjectScore</td>
<td>
<input type="text" name="SubjectScore" value="@SubjectScore" />
</td>
</tr>
<tr>
<td>
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
</body>
</html>