一开始是有一些静态网页,然后,在转成动态页面之后,要在<body>标签下面加上<from id='Id' runat="server">。
当把所有控件都转成动态以后,下面就可以开始做增、删、查、改的处理了。
第一次把增、删、查、改写到完全不用再去看实例的代码用了一个星期,刚开始时,背诵默写是不错的记忆。
一.增加
protected void Add()
{
string strUserName = txtUsrName.Text;
string strPwd = txtPwd.Text;
if (strUserName.Length > 0 && strPwd.Length > 0)
{
string sqlstr = string.Format("insert into Admin(UserName,Password) values('{0}','{1}')", strUserName, strPwd);
SqlHelper.ExceutNonQuery(sqlstr);
JSHelper.Alert(Page, "添加成功");
}
}
二.删除
首先,要想动态删除数据库里的链接,要删除的东西放在“Repeater控件”里。
然后,要在【删除】的按钮上加上两个关建词。一个是CommonArgument='<%#Eval("Id")%>'用来绑定Id,另一个CommandName="del"用来标识。
<asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('确定删除吗?')" CommandArgument='<%#Eval("Id")%>' CommandName="del" runat="server">删除</asp:LinkButton>
其次,把视图切换到【设计】,然后点击【属性】,找到ItemCommand,然后双击,进入到代码界面。
protected void repAdmin_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "del")
{
int id = 0;
Int32.TryParse(e.CommandArgument.ToString(), out id);
SqlHelper.ExceutNonQuery(string.Format("delete Admin where id = {0}", id));
// DataBind(); 调用下面的列表,然后刷新页面。
}
}
三 查询,列表显示
<asp:Repeater ID="repAdmin" runat="server" onitemcommand="repAdmin_ItemCommand">
<ItemTemplate>
<tr>
<td><%#Eval("Id")%></td>
<td><%#Eval("UserName")%></td>
<td><%#Eval("Password")%></td>
<td><%#Eval("CreateTime")%></td>
<td>
<a href="AdminAdd.aspx?id=<%#Eval("Id") %>">修改</a>
</td>
<td>
<asp:LinkButton ID="lbtn" CommandArgument='<%#Eval("Id")%>' CommandName="del" OnClientClick="return confirm('确定删除吗?')" runat="server">删除</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
查询,要拿到Repeater的ID,然后在代码里体现出来
protected void DataBind()
{
repAdmin.DataSource = SqlHelper.Adapter("select * from Admin");
repAdmin.DataBind();
}
最后,在运行程序里调用
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBind();
}
}
四 修改
给一个链接,跳转到要修改的页面。还要把页面原本的值拿到。所以要先绑定Id。
<a href="AdminAdd.aspx?id=<%#Eval("Id") %>">修改</a>
然后到你跳转到的页面里,把代码体现出来。下面的代码就是要写到AdminAdd.aspx.cs里的。
protected void Update()
{
string strUserName = txtUsrName.Text;
string strPwd = txtPwd.Text;
SqlHelper.ExceutNonQuery(string.Format("update Admin set UserName = '{0}', Password = '{1}' where Id = {2}", strUserName, strPwd, id));
}
protected void Query()
{
DataSet ds = SqlHelper.Adapter(string.Format("select * from Admin where Id = {0}", id));
txtUsrName.Text = ds.Tables[0].Rows[0]["UserName"].ToString();
txtPwd.Text = ds.Tables[0].Rows[0]["Password"].ToString();
}
然后在程序当中判断,当id不为空的时候,就调用查询的方法。否则就是要新增一个用户。
protected void Page_Load(object sender, EventArgs e)
{
if(!string.IsNullOrEmpty(Request.QueryString["id"]))
{
Int32.TryParse(Request.QueryString["id"], out id);
if(!IsPostBack)
{
Query();
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (id > 0)
{
Update();
}
else
{
Add();
}
}