SqlDataReader reader = com.ExecuteReader(); 之前要打开连接,con.Open();

解决方案 »

  1.   

    if (reader.IsDBNull(0))
      {
      i = reader.GetInt32(0);
      reader.Close();
      }应该是
    if(reader[0] != DBNull.Value)
    {
     i = reader.GetInt32(0);
    }
      

  2.   

    open打开的那个地方没有问题,因为在前面我已经打开过了,程序也没有报错
    只是取值的时候,都是false,很奇怪
      

  3.   

    try catch finally 去掉
      

  4.   

    你的try语句块里应该有异常抛出,然后被你的catch语句捕获,因为你在catch语句块里
    catch
      {
      isgood = false;
      }
    把isgood赋为了false,而且没有对异常做处理,所以你看不到有异常抛出,且isgood永远是false。
    在debug模式下根进去看看是哪出的错,也可以在catch语句里加上一个throw,这样就可以看到是抛的什么异常了。
    catch
      {
      isgood = false;
      throw;
      }
    要不就把trycatch语句去掉,可以直接看到是哪个地方出的错。