1、前台设计:
<head runat="server">
<title></title>
<style type="text/css">
.center
{text-align:center;
}
.big_img img
{
border:1px solid #ccc;
width:100px;
height:100px;
}
.big_img:hover img
{ height:200px;
width:200px;
display:inline;
border:1px soid navy;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server"
onitemcommand="Repeater1_ItemCommand">
<HeaderTemplate><table border="" width="100%"><tr><th>姓名</th><th>性别</th><th>年龄</th><th>照片</th><th>操作</th></tr></HeaderTemplate>
<ItemTemplate>
<tr class="center">
<td><%#Eval("sname") %></td><td><%#Eval("sex") %></td><td><%#Eval("age") %></td>
<div style="display:inline;position:relative;">
<td><a href="#" class="big_img"><img alt="" src='<%#Eval("photo") %>'/></a></td>
</div>
<td>
<asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid") %>'>删除</asp:LinkButton></td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8" class="center">
<td><%#Eval("sname") %></td><td><%#Eval("sex") %></td><td><%#Eval("age") %></td>
<div style="display:inline;position:relative;">
<td><a href="#" class="big_img"><img alt="" src='<%#Eval("photo") %>'/></a></td>
<td>
<asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid") %>'>删除</asp:LinkButton></td>
</div></tr>
</AlternatingItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
2、后台设计:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindStudent();
}
}
private void BindStudent()
{
string sql = "select * from student";
DataTable dt = SqlHealper1.ExecuteDataTable(sql, CommandType.Text);
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "delete")
{
string sql = "delete from student where sid=@sid";
SqlParameter p1 = new SqlParameter("@sid", e.CommandArgument.ToString());
SqlHealper1.ExecuteNonQuery(sql, p1);
this.BindStudent();
}
}
3、SqlHeper的设计:
public static class SqlHealper1
{
private static readonly string constr1 = ConfigurationManager.ConnectionStrings["studentConnectionString"].ConnectionString;
#region ExecuteNonQuery 执行insert delete update的方法
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(constr1))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)//说明还传了参数
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();
}
}
}
#endregion
public static object ExecuteScalar(string sql, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(constr1))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)//说明还传了参数
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteScalar();
}
}
}
public static object ExecuteReader(string sql, params SqlParameter[] pms)//返回的参数,params是可能没有这个参数,SqlParameter[]数组的参数
{
SqlConnection con = new SqlConnection(constr1);
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)//说明还传了参数
{
cmd.Parameters.AddRange(pms);
}
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
}
public static DataTable ExecuteDataTable(string sql,CommandType commandtype, params SqlParameter[] pms)//返回的参数,params是可能没有这个参数,SqlParameter[]数组的参数
{
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(sql, constr1);
adapter.SelectCommand.CommandType = commandtype;
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);//添加参数的方法
}
adapter.Fill(dt);
return dt;
}
}