首页 > 解决方案 > 从数据库中获取数据到文本框c#asp

问题描述

我有网格视图编辑按钮,当用户单击编辑时,页面将重定向到 url 中带有文本框字段的其他页面数据库

这个网格视图:http: //prntscr.com/llgid0

这是带有 {Employee_ID} 的编辑页面:http: //prntscr.com/llgio4

编辑页面的html:

<body>
    <form id="form2" runat="server">
        <div>
            Employee ID :
            <asp:TextBox ID="id" runat="server" ></asp:TextBox>
            <br />
            Employee Name : <asp:TextBox ID="name" runat="server"></asp:TextBox>
            <br />
            Address :
            <asp:TextBox ID="address" runat="server"></asp:TextBox>
            <br />
            Birthdate :
            <asp:TextBox ID="birth" runat="server" TextMode="Date"></asp:TextBox>
            <br />
            Mobile No :<asp:TextBox ID="mobile" runat="server"></asp:TextBox>
            <br />
            Email :
            <asp:TextBox ID="email" runat="server"></asp:TextBox>
            <br />
            Country :<asp:TextBox ID="co" runat="server"></asp:TextBox>
            <br />
            CityName :<asp:TextBox ID="city" runat="server"></asp:TextBox>
            <br />
            UserName :<asp:TextBox ID="user" runat="server"></asp:TextBox>
            <br />
            Password :<asp:TextBox ID="pass" runat="server" ></asp:TextBox>
            <br />
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Update" />
        </div>
    </form>

        <div>
        </div>
    </form>
    <p class="auto-style1">
        &nbsp;</p>
</body>
</html>

gridview 页面后面的代码:

public partial class table : System.Web.UI.Page
{



    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString);
    protected void Page_Load(object sender, EventArgs e)
    {
        if (con.State == ConnectionState.Closed)
        {
            con.Open();
        }

        if (!Page.IsPostBack)
        {
            BindEmpGrid();
            txtSearch.Enabled = false;
        }
    }

    private void BindEmpGrid()
    {
        SqlDataAdapter adp = new SqlDataAdapter();
        DataTable dt = new DataTable();
        try
        {
            adp = new SqlDataAdapter("select * from Emp", con);
            adp.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                grdEmp.DataSource = dt;
                grdEmp.DataBind();
            }
            else
            {
                grdEmp.DataSource = null;
                grdEmp.DataBind();
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('Error occured : " + ex.Message.ToString() + "');", true);
        }
        finally
        {
            dt.Clear();
            dt.Dispose();
            adp.Dispose();
            con.Close();
        }
    }

    protected void ddlSearchBy_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlSearchBy.SelectedItem.Text == "All")
        {
            txtSearch.Text = string.Empty;
            txtSearch.Enabled = false;
        }
        else
        {
            txtSearch.Enabled = true;
            txtSearch.Text = string.Empty;
            txtSearch.Focus();
        }
    }

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter adp = new SqlDataAdapter();
        try
        {
            if (ddlSearchBy.SelectedItem.Text == "Employee_ID")
            {
                getEmpRecords(ddlSearchBy.SelectedItem.Text, txtSearch.Text.Trim());
            }
            else if (ddlSearchBy.SelectedItem.Text == "Employee_name")
            {
                getEmpRecords(ddlSearchBy.SelectedItem.Text, txtSearch.Text.Trim());
            }
            else if (ddlSearchBy.SelectedItem.Text == "Mobile")
            {
                getEmpRecords(ddlSearchBy.SelectedItem.Text, txtSearch.Text.Trim());
            }
            else
            {
                getEmpRecords(ddlSearchBy.SelectedItem.Text, txtSearch.Text.Trim());
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('Error occured : " + ex.Message.ToString() + "');", true);
        }
        finally
        {
            dt.Clear();
            dt.Dispose();
            cmd.Dispose();
            con.Close();
        }
    }

    private void getEmpRecords(string searchBy, string searchVal)
    {
        DataTable dt = new DataTable();
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter adp = new SqlDataAdapter();
        try
        {
            cmd = new SqlCommand("all", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@SearchBy", searchBy);
            cmd.Parameters.AddWithValue("@SearchVal", searchVal);
            adp.SelectCommand = cmd;
            adp.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                grdEmp.DataSource = dt;
                grdEmp.DataBind();
            }
            else
            {
                grdEmp.DataSource = dt;
                grdEmp.DataBind();
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('Error occured : " + ex.Message.ToString() + "');", true);
        }
        finally
        {
            dt.Clear();
            dt.Dispose();
            cmd.Dispose();
            con.Close();
        }
    }

    protected void grdEmp_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdEmp.PageIndex = e.NewPageIndex;
        BindEmpGrid();
    }

    protected void grdEmp_SelectedIndexChanged(object sender, EventArgs e)
    {

    }


    protected void grdEmp_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Del")
        {
            int EmpID = int.Parse(e.CommandArgument.ToString());

            DeleteRecord(EmpID);
            BindEmpGrid();


        }
        if (e.CommandName == "Edit")
        {
            string EmpID = e.CommandArgument.ToString();
            Response.Redirect("update.aspx?Id="+ EmpID);



        }

    }


    private void DeleteRecord(int EmpID)
    {

        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "delete from Emp where Employee_ID = @a";
        cmd.Parameters.AddWithValue("@a", EmpID);
        cmd.Connection = con;


        cmd.ExecuteNonQuery();
        con.Close();


        }
}

标签: c#asp.netvisual-studio

解决方案


如果您使用 id 重定向到其他页面,则可以使用多种解决方案。

1) 使用查询字符串 id 从数据库中获取详细信息并填充值。

2)当您单击编辑按钮时将您的数据存储到会话中,然后从您的会话ID中获取详细信息到其他页面/表单中。

public void fetchEmployeeDetail()
        {
            SqlDataAdapter adp = new SqlDataAdapter();
            DataTable dt = new DataTable();
            try
            {
                adp = new SqlDataAdapter("select * from Emp where number =" + Request.QueryString["id"], con);
                adp.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    name.Text = dt.rows[0]["name"].ToString(); // name means your table column name 
                    address.Text = dt.rows[0]["name"].ToString();
                    birth.Text = dt.rows[0]["name"].ToString();
                }
            }
            catch
            {

            }
        }

推荐阅读