索引超出范围异常在c#中未处理

时间:2014-06-03 06:18:34

标签: c# sql .net sql-server-2008 c#-4.0

这是我检索当前插入的product_ID的代码,但我在这里得到了例外 - "索引超出范围" PRODUCT_ID

    public int GetProductIDD()
    {
        int productID = 0;

        con.Open();
        string str = "SELECT MAX(Product_ID) FROM AddProduct";
        cmd = new SqlCommand(str, con);
        SqlDataReader rd = cmd.ExecuteReader();

        while (rd.Read())
        {
            productID = Convert.ToInt32(rd["Product_ID"]);
        }

        return productID;
    }

我的数据库表AddProduct如下 -

Product_ID   Product_Name  Vendor_ID
-----------------------------------------
1            asd           3 

提前致谢...

2 个答案:

答案 0 :(得分:2)

尝试使用别名:

string str = "SELECT MAX(Product_ID) as Product_ID FROM AddProduct";

<强>分析:

使用您的查询,结果将类似于:

MAX(Product_ID)
1

您正在尝试从结果中获取Product_ID字段。

使用别名,结果如下:

Product_ID
1

答案 1 :(得分:-1)

如果您的查询返回单个结果,那么它应该是正确的输出以及C#OutPut。

检查您的数据阅读器是否先输入。

if (rd.HasRows)
{
    while (rd.Read())
    {
        productID = Convert.ToInt32(rd["Product_ID"]);
    }
}