如何在Asp.Net GridView中更新数据 [英] How Update Data In Asp.Net GridView

查看:120
本文介绍了如何在Asp.Net GridView中更新数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我更新数据时遇到了一些问题................

我的代码是..

Aspx页面>

 <   asp:GridView     ID   =  GridView2    runat   =  server    AutoGenerateColumns   =  false   < span class =code-attribute>宽度  =  100%    CssClass   =  gridview    DataKeyNames   =   Id    OnRowEditing  < span class =code-keyword> =  GridView2_RowEditing  
< span class =code-attribute>
< span class =code-attribute> OnRowCancelingEdit = < span class =code-keyword> GridView2_OnRowCancelingEdit OnRowUpdating = GridView2_OnRowUpdating OnRowDeleting = GridView2_OnRowDeleting >
< >
<% - < asp:BoundField HeaderText = InvoiceNumber DataField = InvoiceNumber可见= false /> - %>
< asp:BoundField HeaderText = Id DataField = Id 可见 = true / >
< asp:BoundField HeaderText = 描述 DataField = 描述 / >
< asp:BoundField HeaderText = TicketPrice DataField = TicketPrice / >
< asp:BoundField HeaderText = 乘客 DataField = 乘客 / >
< asp:BoundField HeaderText = IssuingFee < span class =code-attribute>
DataField = IssuingFee / >
< asp:BoundField HeaderText = TotalAmount DataField = TotalAmount < span class =code-attribute> / >

< asp:CommandField < span class =code-attribute> HeaderText = 编辑 - 更新 ShowEditButton = True / >
< asp:CommandField HeaderText = 删除 ShowDeleteButton = true / >
< / Columns >
< / asp:GridView >









.CS页面> <前lang =c#> 受保护 void GridView2_RowEditing( object sender,GridViewEditEventArgs e)
{
GridView2.EditIndex = e.NewEditIndex;
GridView2.DataBind();
gvbind();
}
受保护 void GridView2_OnRowCancelingEdit( object sender,GridViewCancelEditEventArgs e)
{
GridView2.EditIndex = -1;
gvbind();
}
受保护 void GridView2_OnRowUpdating( object sender,GridViewUpdateEventArgs e)
{

string s = ConfigurationManager.ConnectionStrings [ conn]。ToString();
p = new SqlConnection(s);
SqlCommand cmd = new SqlCommand( Update_Item ,p);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( @ Id,SqlDbType.Int, 4 )。Value = Convert.ToInt32(GridView2.DataKeys [e.RowIndex] .Value);

cmd.Parameters.Add( @ Description,SqlDbType.VarChar , 200 )。Value =((TextBox)GridView2.Rows [e.RowIndex] .Cells [ 1 ] .Controls [ 0 ])。文字;
cmd.Parameters.Add( @ TicketPrice,SqlDbType.VarChar, 50 )。值=((TextBox)GridView2.Rows [e.RowIndex] .Cells [ 2 ]。控件[ 0 ])。文字;
cmd.Parameters.Add( @ Passenger,SqlDbType.VarChar, 50 )。Value =((TextBox)GridView2.Rows [e.RowIndex] .Cells [ 3 ]。控件[ 0 ])。文字;
cmd.Parameters.Add( @ IsssuingFee,SqlDbType.VarChar, 50 )。Value =((TextBox)GridView2.Rows [e.RowIndex] .Cells [ 4 ]。控件[ 0 ])。文字;
cmd.Parameters.Add( @ TotalAmount,SqlDbType.VarChar, 50 )。Value =((TextBox)GridView2.Rows [e.RowIndex] .Cells [ 5 ]。控件[ 0 ])。文字;
cmd.Connection.Open();
cmd.ExecuteNonQuery();

cmd.Connection.Close();
GridView2.EditIndex = -1;

gvbind();

}
受保护 void GridView2_OnRowDeleting( object sender,GridViewDeleteEventArgs e)
{
string s = ConfigurationManager.ConnectionStrings [ conn]。ToString();
p = new SqlConnection(s);
SqlCommand cmd = new SqlCommand( Delete_Item ,p);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( @ Id,SqlDbType.Int, 4 )。Value = Convert.ToInt32(GridView2.DataKeys [e.RowIndex] .Value);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
gvbind();
}









商店程序..>

 ALTER proc [dbo]。[Update_Item] 

@Id int
@Description varchar( 200 ),
@TicketPrice varchar( 50 ),
@Passenger varchar( 50 ),
@IsssuingFee varchar( 50 ),
@TotalAmount varchar( 50

as

update ItemMaster set 说明= @说明,TicketPrice = @ TicketPrice,乘客= @Persenger,
IssuingFee = @ IsssuingFee,TotalAmount = @ TotalAmount
其中 Id = @ Id

解决方案

您好


可能如果我没错了



检查页面加载绑定数据的事件。



把它放好



  if (!IsPostBack)
{
gvbind();
}


I have some Issue when we Update the data................
My Code Is..
Aspx Page >

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" Width="100%" CssClass="gridview" DataKeyNames="Id" OnRowEditing="GridView2_RowEditing"

                    OnRowCancelingEdit="GridView2_OnRowCancelingEdit" OnRowUpdating="GridView2_OnRowUpdating" OnRowDeleting="GridView2_OnRowDeleting">
                    <Columns>
                      <%-- <asp:BoundField HeaderText="InvoiceNumber" DataField="InvoiceNumber" Visible="false" />--%>
                         <asp:BoundField HeaderText="Id" DataField="Id" Visible="true" />
                        <asp:BoundField HeaderText="Description" DataField="Description" />
                        <asp:BoundField HeaderText="TicketPrice" DataField="TicketPrice" />
                        <asp:BoundField HeaderText="Passengers" DataField="Passengers" />
                        <asp:BoundField HeaderText="IssuingFee" DataField="IssuingFee" />
                        <asp:BoundField HeaderText="TotalAmount" DataField="TotalAmount" />

                         <asp:CommandField HeaderText="Edit-Update" ShowEditButton="True" />
                         <asp:CommandField HeaderText="Delete" ShowDeleteButton="true" />
                    </Columns>
                </asp:GridView>





.CS Page >

protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
   {
       GridView2.EditIndex = e.NewEditIndex;
       GridView2.DataBind();
       gvbind();
   }
   protected void GridView2_OnRowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
   {
       GridView2.EditIndex = -1;
       gvbind();
   }
   protected void GridView2_OnRowUpdating(object sender, GridViewUpdateEventArgs e)
   {

       string s = ConfigurationManager.ConnectionStrings["conn"].ToString();
       p = new SqlConnection(s);
       SqlCommand cmd = new SqlCommand("Update_Item", p);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add("@Id", SqlDbType.Int, 4).Value = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value);

       cmd.Parameters.Add("@Description", SqlDbType.VarChar, 200).Value = ((TextBox)GridView2.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
       cmd.Parameters.Add("@TicketPrice", SqlDbType.VarChar, 50).Value = ((TextBox)GridView2.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
       cmd.Parameters.Add("@Passenger", SqlDbType.VarChar, 50).Value = ((TextBox)GridView2.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
       cmd.Parameters.Add("@IsssuingFee", SqlDbType.VarChar, 50).Value = ((TextBox)GridView2.Rows[e.RowIndex].Cells[4].Controls[0]).Text;
       cmd.Parameters.Add("@TotalAmount", SqlDbType.VarChar, 50).Value = ((TextBox)GridView2.Rows[e.RowIndex].Cells[5].Controls[0]).Text;
       cmd.Connection.Open();
       cmd.ExecuteNonQuery();

       cmd.Connection.Close();
       GridView2.EditIndex = -1;

       gvbind();

   }
   protected void GridView2_OnRowDeleting(object sender, GridViewDeleteEventArgs e)
   {
       string s = ConfigurationManager.ConnectionStrings["conn"].ToString();
       p = new SqlConnection(s);
       SqlCommand cmd = new SqlCommand("Delete_Item", p);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add("@Id", SqlDbType.Int, 4).Value = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value);
       cmd.Connection.Open();
       cmd.ExecuteNonQuery();
       cmd.Connection.Close();
       gvbind();
   }





Store Procedure..>

ALTER proc [dbo].[Update_Item]
(
@Id int,
@Description varchar(200),
@TicketPrice varchar(50),
@Passenger varchar(50),
@IsssuingFee varchar(50),
@TotalAmount varchar(50)

)as

update ItemMaster set Description=@Description, TicketPrice=@TicketPrice,Passengers=@Passenger,
                        IssuingFee=@IsssuingFee, TotalAmount=@TotalAmount
                       where Id=@Id

解决方案

Hi

May be if i am not wrong

Check Page Load event for bind data.

Put it

if (!IsPostBack)
        {
            gvbind();
        }


这篇关于如何在Asp.Net GridView中更新数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆