2016-10-29 3 views
2

geklickt wird Ich bin ein einfaches Warenkorb zu machen. das fügt Produkt in der Warenkorb Seite von einer Schaltfläche, die auf einer anderen Seite ist in dem Warenkorb Button meine alsIndexOutOfRangeException wenn Taste

folgt
protected void addCart_Click(object sender, EventArgs e) 
     { 
      if (Session["mySC"] == null) 
      { 
       mySC = new CartClass(); 
       Session["mySC"] = mySC; 

      } 

      string ID = Request.QueryString["ID"]; 
      mySC = (CartClass)Session["mySC"]; 
      DataTable dt = DA.selectQuery("Select * from Trees where ID='"+ID+"'"); 
      DataRow row = dt.Rows[0]; 
       mySC.insert(new cartItems(Int32.Parse(ID), 
        row["TreeName"].ToString(), 
        row["Image"].ToString(), 
        Double.Parse(row["PricePerCube"].ToString()), 1)); 


     } 
    } 

, wenn diese Taste erscheint die folgende Fehlermeldung geklickt wird

eine Ausnahme vom Typ nach oben System.IndexOutOfRangeException trat in System.Data.dll wurde aber in Benutzercode

Zusätzliche Informationen nicht behandelt: Es gibt keine Zeile an Position 0

jede mögliche Hilfe würde geschätzt

+1

** SQL Injection Alert! ** Verwenden Sie keine String-Verkettung zum Erstellen von SQL-Abfragen. Besonders wenn Sie 'QueryString [" ID "]' direkt lesen. –

Antwort

0
DataRow row = dt.Rows[0]; 

Die Ausnahme wird ausgelöst, wenn keine Zeilen zurückgegeben werden. Fügen Sie eine if-Bedingung hinzu

If (dt.Rows.Count > 0){ 

DataRow row = dt.Rows[0]; 
      mySC.insert(new cartItems(Int32.Parse(ID), 
       row["TreeName"].ToString(), 
       row["Image"].ToString(), 
        Double.Parse(row["PricePerCube"].ToString()), 1)); 



} 
+0

die Schaltfläche nicht Fehler nicht mehr geben, aber wenn ich auf meinem Warenkorb Seite klicken um zu überprüfen, ob das Element hinzugefügt wird oder nicht, es gibt mir diese Fehler Eine Ausnahme des Typs ‚System.InvalidOperationException‘ aufgetreten in System.Web.dll aber war Sowohl Datasource und DataSourceID definiert auf ‚gv‘: in Benutzercode Zusätzliche Informationen nicht behandelt. Entferne eine Definition. gv ist die gridview, dass die Daten hinzugefügt werden, muss Ihr Code – billz

+0

Bitte an .. angezeigt. Hinzufügen gv.DataSourceId = null; vor dem Definieren von Datenquelle – Hadi

+0

Code in meiner Antwort auf die Frage – billz

Verwandte Themen