c# - 单击按钮时出现 IndexOutOfRangeException

标签 c# asp.net

我正在制作一个简单的购物车。它从另一个页面上的按钮将产品添加到购物车页面,我的添加到购物车按钮如下所示

 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.Data.dll 中发生System.IndexOutOfRangeException 类型的异常,但未在用户代码中处理

附加信息:位置 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));



}

关于c# - 单击按钮时出现 IndexOutOfRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321613/

相关文章:

c# - 新的NEST dll版本NEST.1.1.2中缺少BaseQuery类

C# 附件执行

javascript - 我将带有 Google map 的网站转换为 Android 应用程序。 Android 应用程序中未显示 Google map

c# - 如何强制重新加载 NLog 配置文件?

c# - T 泛型不适用于构建器模式

c# - "Cannot insert explicit value for identity column in table ' 电影 ' when IDENTITY_INSERT is set to OFF."

IIS 上未加载 css 和图像

html - 循环遍历数据库以显示 div 中的信息

c# - 如何将所有行值从数据表中获取到一个字符串中?

php - SQL Server 表到 MySQL 表