2016-12-26 4 views
0

Aktualisierung i ein Code zum Bearbeiten löschen und aktualisieren bekam schrieb ein gridview aber seine funktionierte nicht während der Aktualisierung seiner gerade die letzten Werte nicht neu hier der Server-Side-Code:kippe Update Gridview durch die Methode asp.net

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
     try 
     { 

      TextBox na = (TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]; 
      TextBox i = (TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]; 
      TextBox sid = (TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]; 
      //  string a = name.Text; 
      string name = na.Text; 
      int id = Convert.ToInt32(i.Text); 
      String stdid = sid.Text; 


      String query = "update [table] set [email protected],[email protected] where [email protected] "; 
      SqlConnection sqc = new SqlConnection(cons); 
      SqlCommand qu = new SqlCommand(query, sqc); 
      qu.Parameters.AddWithValue("@name", name); 
      qu.Parameters.AddWithValue("@stdid", stdid); 
      qu.Parameters.AddWithValue("@id", id); 
      string f = qu.CommandText; 
      sqc.Open(); 
      qu.ExecuteNonQuery(); 
      sqc.Close(); 
     } 
     catch (Exception ee) { } 
     refresh_dgv(); 
    } 

und es ist meine Client-Seite cod:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
OnRowDeleting="GridView1_RowDeleting"OnRowEditing="GridView1_RowEditing"  OnRowUpdated="GridView1_RowUpdated" OnRowUpdating="GridView1_RowUpdating" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True"> 
     <Columns> 

       <asp:BoundField DataField="id" HeaderText ="id"/> 
       <asp:BoundField DataField="name" HeaderText="name" /> 
       <asp:BoundField DataField="stdid" HeaderText="stdid" /> 

      </Columns> 
    </asp:GridView> 
+0

erhalten Können Sie Ihre Connection String zeigen? –

+0

Was ist der Fehler? –

+0

@ s.akbari static Zeichenfolge cons = @ "Datenquelle = (LocalDB) \ MSSQLLocalDB; AttachDbFilename = E: \ uni \ internet \ homeworks \ tamrin6 \ IECH_HW6_9250030_GHORBANI_ALI \ IECH_HW6_9250030_GHORBANI_ALI \ alighorbani_dataview1 \ dataview.mdf; Integrierte Sicherheit = True; Verbindungstimeout = 30 "; – alighorbani

Antwort

0

Dieses Problem wie unten in vielfältiger Weise lösen kann.

1. Wir müssen überprüfen, ob die Seite zurückgeschickt wird oder nicht. Wenn nicht, binden wir das Grid.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindGrid(); 
    } 
} 

2. Verwenden Datakeys zB.

<asp:gridview id="GridView1" 
    ... 
       DataKeyNames="ProjectID" 
    /> 
string empsname = Convert.ToString(grdvw1.DataKeys[e.RowIndex].Values[1]); 

3.

EnableViewState Eigenschaft falsch von gridview können Sie neue Wert