在asp.net中索引超出范围异常

时间:2012-03-11 08:35:35

标签: c#-4.0

在尝试连接数据库时,我在页面加载方法中编写了以下代码:

    SqlConnection con = new SqlConnection(constring);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    con.Open();
    cmd.CommandText = "select pid from pid";
    SqlDataAdapter da = new SqlDataAdapter();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    da.SelectCommand = cmd;
    da.Fill(dt);
    a = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
    con.Close();
    return a;

我在代码行中遇到错误" a = Convert.ToInt32(dt.Rows [0] [0] .ToString())+ 1; "如: 索引超出范围异常 位置0没有行 怎么办?

1 个答案:

答案 0 :(得分:0)

据推测,您的查询没有返回任何行。相应地处理(如果查询可能没有返回任何行,则添加if语句)。否则,您的查询可能会出现问题(从同名对象中选择一列似乎不对)。

int retVal = default( int );

if( dt.Rows.Count == 1 )
{
    retVal = (int)dt.Rows[0][columnName];
}

return retVal;