using SQL = System.Data.SqlClient;SQL.SqlConnection dbConn = null;
SQL.SqlDataReader dbReader = null;try
{
string  sConnect;
sConnect = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=H2007";
dbConn = new SQL.SqlConnection(sConnect);
dbConn.Open(); string  sql;
sql = "select * from UserInfo;"; SQL.SqlCommand  dbCmd;
dbCmd = new SQL.SqlCommand(sql, dbConn); dbReader = dbCmd.ExecuteReader();
int count = 0;
string username;
string userpwd; while (dbReader.Read()) 
{
count += 1; username = dbReader["用户名"].ToString();
userpwd = dbReader["密码"].ToString();
}
}
catch(Exception ex)
{
throw ex;
}
finally 
{
try{ dbReader.Close(); } 
catch{}
try{ dbConn.Close();   } 
catch{}
}
我debug了一下,发现第一次while(dbRead.read())的时候,dbReader.read()是true,但一过了while,就是false了,然后就跑catch里去了,觉得很奇怪!
哪位达人帮忙分析一下阿。我确定我的数据库表里有4条记录。

解决方案 »

  1.   

    while (dbReader.Read()) 
    {
    count += 1;username = dbReader["用户名"].ToString();
    userpwd = dbReader["密码"].ToString();
    }
    }
    在这一段代码之后,你进行了其他数据库操作没有?
      

  2.   

    while (dbReader.Read()) 
    {
      count += 1;
      username = dbReader["用户名"].ToString();
      userpwd = dbReader["密码"].ToString();
    }
    }
    catch(Exception ex)
    {
      throw ex;
    }好象多了一个}
      

  3.   

    监视当中说“错误标识符dbReader超出范围。”
      

  4.   

    to fsvbboy(笑看风云淡):
    没有其他数据库操作。
      

  5.   

    未处理的“System.InvalidOperationException”类型的异常出现在 db.dll 中。
    其他信息: 在没有任何数据时进行无效的读取尝试。
      

  6.   


    dbReader.Read()   dbReader最好马上关闭
    而不是放在finally 里由它关闭