2016-10-29 15 views
2

私は簡単なショッピングカートを作っています。これは、このボタンは、次のようなエラーがクリックされたタイプのボタンをクリックしたときのIndexOutOfRangeException

例外をポップアップ表示されている

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)); 


     } 
    } 

を以下のとおりであるカートに追加]ボタンを私の別のページにあるボタンから、ショッピングカートページへ製品を追加しますSystem.IndexOutOfRangeExceptionSystem.Data.dllで発生したが、ユーザーコード

追加情報で処理されなかった:任意の助けが理解されるであろう位置0

でない行が存在しない

+1

** SQLインジェクション警告** SQLクエリを作成するために文字列連結を使用しないでください。特に、 'QueryString [" ID "]'を直接読んだとき。 –

答えて

0
DataRow row = dt.Rows[0]; 

行が返されない場合は例外がスローされます。前にif条件を追加する

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

ボタンにエラーは表示されませんが、カートのページをクリックして項目が追加されているかどうかを確認すると、このエラーが表示されます System.Web.dllに 'System.InvalidOperationException'ユーザーコードで処理されない 追加情報:DataSourceとDataSourceIDは両方とも 'gv'で定義されています。 1つの定義を削除します。 gvは、データを追加する必要があるグリッドビューです。 – billz

+0

コードを表示してください。 gv.DataSourceId = nullを追加します。私の質問に答えてデータソース – Hadi

+0

を定義する前に – billz

関連する問題