位置5没有排

时间:2013-03-01 01:05:11

标签: c# ado.net dataset

我正在使用C Sharp

运行调试器后出现此错误,以查看代码错误:

{“位置5没有行。”} System.Exception {System.IndexOutOfRangeException}

   public DataSet FindData(string ID, string pass)
    {
        InitializeConnection();
        m_oCn.Open();
        DataSet thisDataSet = new DataSet();
        DataSet foundDataSet = new DataSet();
        try
        {
            m_oDA.Fill (thisDataSet, "Login");
            for (int n = 0; 0 < thisDataSet.Tables["Login"].Rows.Count ; n++)
            {
                if (thisDataSet.Tables["Login"].Rows[n]["UserName"].ToString () == ID)
                {
                    if (thisDataSet.Tables["Login"].Rows[n]["Password"].ToString () == pass)
                    {
                        m_oDA.Fill(foundDataSet,n,1,"Login");


                    }
                }
            }
        }
        catch 
        {
        }
        finally
        {
            m_oCn.Close();
            m_oCn = null;
        }
        return foundDataSet;

2 个答案:

答案 0 :(得分:2)

for (int n = 0; 0 < thisDataSet.Tables["Login"].Rows.Count; n++)

你的for循环条件检查零是否小于行数,这意味着你的循环将无限期地运行(或者直到你访问一个不存在的索引)。您可能需要检查n是否小于行数:

for (int n = 0; n < thisDataSet.Tables["Login"].Rows.Count; n++)

答案 1 :(得分:0)

你的循环如果有缺陷:

for (int n = 0; 0 < thisDataSet.Tables["Login"].Rows.Count ; n++)

不应该是:

for (int n = 0; n < thisDataSet.Tables["Login"].Rows.Count ; n++)