Repeater的查询,添加,修改,删除

17 篇文章 0 订阅

Repeater的查询,添加,修改,删除 -----仅供参考;(有不足之处希望大家多多提意见)
首先在创建项目中创建ASP.NET空网站 ,进入网站时创建两个web窗体分别为RepeaterUserInfo.aspx,ReperUpdate.aspx;接下来在RepeaterUserInfo.aspx的前台页面中开始拉repeater的控件;写前台的代码,代码块如下`

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RepeaterUserInfo.aspx.cs" Inherits="RepeaterUserInfo" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table style="width: 429px">
                <tr>
                    <td>姓名</td>
                    <td>年龄</td>
                    <td>操作</td>
                </tr>

                <asp:Repeater ID="rptStudent" runat="server" OnItemCommand="rptStudent_ItemCommand">
                    <ItemTemplate>
                        <tr>
                            <td><%#Eval("Name") %></td>
                            <td><%#Eval("Age") %></td>
                            <td>
                                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete">删除</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" runat="server" CommandName="update">更新</asp:LinkButton>
                             <asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("Id") %>' />
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>
            <p>姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox></p>
            <p>年龄:<asp:TextBox ID="txtAge" runat="server"></asp:TextBox></p>
            <p>
                <asp:Button ID="btnInsert" runat="server" Text="添加" OnClick="btnInsert_Click" />
            </p>
        </div>
    </form>
</body>
</html>

从源点设计看到的页面如下;
在这里插入图片描述
在这里插入图片描述
后台的代码如下

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class RepeaterUserInfo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            StudentsInit();
        }
    }
    string strConn = "server=(local);database=Student;uid=sa;pwd=localhost;";
    public void StudentsInit()
    {
      
        SqlConnection conn = new SqlConnection(strConn);
        string sql = "select * from Students";
        SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        rptStudent.DataSource = ds;
        rptStudent.DataBind();
    }

    //rpt的行点击事件
    protected void rptStudent_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        //之前不知道你点击的是谁?给每一个按钮都加了一个不同的命令名
        if (e.CommandName == "delete")
        {
            //删除
            //1获取当前点击行   e表示当前点击行
            //2获取当前点击行的隐藏控件值
            //FindControl()根据主键查找服务器控件
            //获取当前点击行,根据ID查找服务器控件,指定控件的类型,获取控件的值  并且将值转化为int类型
            int id = Convert.ToInt32((e.Item.FindControl("HiddenField1") as HiddenField).Value);
            string sql = "delete from Students where Id='" + id + "'";
            SqlConnection conn = new SqlConnection(strConn);
            SqlCommand cmd=new SqlCommand (sql, conn);
            conn.Open();
            int flag = cmd.ExecuteNonQuery();
            conn.Close();
            if (flag > 0)
            {
                StudentsInit();
                Response.Write("<script>alert('删除成功')</script>");
            }
            else
            {
                Response.Write("<script>alert('删除失败')</script>");
            }
            

        }
        //更新
        //页面重定向 页面跳转
        //url传值 以键值对    key=value  key表示键 是自己随便起的    value表示值 传递的数据
        if (e.CommandName=="update")
            {
            int ids = Convert.ToInt32((e.Item.FindControl("HiddenField1") as HiddenField).Value);
            Response.Redirect("ReperUpdate.aspx?mykey=" + ids + " ");
        }

    }

    protected void btnInsert_Click(object sender, EventArgs e)
    {
        string name = txtName.Text.Trim();
        string age = txtAge.Text.Trim();
        string sql = "insert into Students values('" + name + "','" + age + "')";
        SqlConnection conn = new SqlConnection(strConn);
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        int flag = cmd.ExecuteNonQuery();
        conn.Close();
        if (flag > 0)
        {
            StudentsInit();
            Response.Write("<script>alert('添加成功')</script>");
        }
        else
        {
            Response.Write("<script>alert('添加失败')</script>");
        }
    }
}

进入第二个页面ReperUpdate.aspx
在前台先写好前台的代码;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReperUpdate.aspx.cs" Inherits="ReperUpdate" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <p>姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox></p>
            <p>年龄:<asp:TextBox ID="txtAge" runat="server"></asp:TextBox></p>
            <p>
                <asp:Button ID="btnSubmit" runat="server" Text="更新" OnClick="btnSubmit_Click" /></p>
        </div>
    </form>
</body>
</html>

进入源点击跟新按钮进入后台页面

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ReperUpdate : System.Web.UI.Page
{
    string strConn = "server=(local);database=Student;uid=sa;pwd=localhost;";
    protected void Page_Load(object sender, EventArgs e)
    {
        // //ASP.NET WEBFORM 
        //页面首次加载机制:为了减少不必要的加载,.NET底层会保存首次加载页面的内容
        if (!IsPostBack)
        {
            //url接id的值
            int id = Convert.ToInt32(Request["mykey"]);
            SqlConnection conn =new SqlConnection (strConn);
            string sql = "select * from Students where Id=" + id + "";
            SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            //ds中存放了若干个 table   DataSet   DataTable   DataRow  DataColunm
            //判断是否查到了数据
            if (ds.Tables[0].Rows.Count > 0)
            {
                //找到第一张表格中的第一行的Name字段 将值赋给文本框显示
                txtName.Text = ds.Tables[0].Rows[0]["Name"].ToString();
                txtAge.Text = ds.Tables[0].Rows[0]["Age"].ToString();
            }
            else
            {
                Response.Write("<script>alert('没有该学生记录!');window.location.href='RepeaterUserInfo.aspx';</script>");
            }

        }
    }

    //更新按钮的事件
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        //接收前面传来的id值
        int id = Convert.ToInt32(Request["mykey"]);
        //1获取用户文本框中输入的内容
        string name = txtName.Text.Trim();
        int age = Convert.ToInt32(txtAge.Text.Trim());
        string sql = "update Students set Name='" + name + "',Age=" + age + " where Id=" + id + "";
        SqlConnection conn = new SqlConnection(strConn);
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        int flag = cmd.ExecuteNonQuery();
        conn.Close();
        if (flag > 0)
        {

            //4页面跳转到WebForm1
            Response.Write("<script>alert('更新成功');window.location.href='RepeaterUserInfo.aspx';</script>");//脚本javascript   使用js的跳转代码

            //Response.Redirect("RepeaterUserInfo.aspx");//服务器语言  执行优先级比脚本的高

        }
    }
}

然后就以为完成repeater的绑定,添加,修改,删除操作;
切记页面一定要首次加载数据(!IsPostBack)
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值