2016-06-22 10 views
0

Ich möchte meinem Benutzer eine Datentabelle geben, in der er Daten bearbeiten kann. Ich benutzte diese Methode, um meine Daten aus SQL ServerWie aktualisiere ich Daten im Webformular mit Gridview?

 public static List<TestAsfa> GetRecordsMan() { 
     using (var d = new TestEntities()) 
     { 
      return d.TestAsfa.ToList(); 
     } 

ich stecken geblieben, wenn ich die Funktion Löschen

protected void RowDeleting(object sender, GridViewDeleteEventArgs e) 
    { 
     try 
     { 
      dt.Rows[GridView1.Rows[e.RowIndex].RowIndex].Delete(); 
      int id =Convert.ToInt32(GridView1.Rows[e.RowIndex].ID); 

      FillGridView(); 
     } 
     catch 
     { 
      Response.Write("<script> alert('Record not deleted...') </script>"); 
     } 
    } 

dies ist die Löschfunktion schreiben wollte. Ich schrieb das Verfahren unter

public static void deleteRecord(int id) 
    { 

     using (var d = new TestEntities()) 
     { 
      TestAsfa tb = d.TestAsfa.SingleOrDefault(t => t.ID == id); 
      d.TestAsfa.Remove(tb); 
      d.SaveChanges(); 
     } 
    } 

aber ich weiß nicht, es nicht die richtige Zeile id bekommt vom Sender Ich verstehe nicht meinen Fehler

Antwort

0

Für ausgewählte Zeile diesen Code

verwenden Entfernen
using(var d = new TestEntities()) 
{ 
    d.TestAsfa.Remove(d.TestAsfa.Find(id)); 
    d.SaveChanges(); 
} 

oder verwenden Sie dieses

using(var d = new TestEntities()) 
    { 
    TestAsfa tb = d.TestAsfa.SingleOrDefault(t => t.Id == id); 
     d.TestAsfa.Remove(tb); 
     d.SaveChanges(); 
    } 
+0

Dank, aber ich erhalte diesen Fehler ex = {"Der Wert darf nicht null sein. \ r \ nParametername: entity"} – saeedeh

+0

Dies scheint Ihre ID Nullwert zu haben, –

+0

nein, das habe ich behoben! aber ich bekomme immer noch diesen Fehler – saeedeh

0

vergessen Sie nicht, err zu verhindern oder Sie müssen sicherstellen, dass die ID, die Sie überprüfen, ein tatsächliches Element ist. So etwas wie dies, zum Beispiel:

public static void deleteRecord(TestAsfa TA,int id) 
    { 
     using(var d = new TestEntities()) 
     { 
      TA= d.TestAsfa.Where(item => item.ItemId == id).FirstOrDefault(); 
      if (itemTA!= null) { 
       d.TestAsfa.Remove(TA); 
      } 
     }    

    } 
0

Hallo versuchen, einen Blick auf dieses

protected void GridView1_RowDeleting (object sender, GridViewDeleteEventArgs e)
{

 GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex]; 
     Label lbldeleteid = (Label)row.FindControl("lblID"); 
     conn.Open(); 

     SqlCommand cmd = new SqlCommand("delete FROM tableName where 
     id='"+Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString())+"'", conn);  

     cmd.ExecuteNonQuery();  

     conn.Close();  
     gvbind(); 

    } 
+0

Es tut mir leid, aber was ist conn ?? – saeedeh

+0

Datenbankverbindungszeichenfolge .. wir müssen die Verbindung öffnen, um die Abfrage auszuführen! – Ashokk

+0

Sie meinen ich sollte diese Zeichenfolge hinzufügen conn = ConfigurationManager.ConnectionStrings ["TestEntities"]. ConnectionString; – saeedeh

Verwandte Themen