如果只是写这句:
 tbTitle.Text = (string)sdr["Title"];
会出错:"在没有任何数据时进行无效的读取尝试"。如果这样写:bool j = sdr.Read();    
          tbTitle.Text = (string)sdr["Title"];就能正常运行实现效果,  这是为什么呢? 加了bool j = sdr.Read();  就可以了??

解决方案 »

  1.   

    你不先Read一下,数据从哪里来?
      

  2.   

    sdr.Read(); // 表示开启 Reader 读取器。不加这一句,Reader 就还没开启,当然取不到数据了
      

  3.   

    sdr 必须先尝试读一下.才会使记录从起始处移到第一行.
      

  4.   

    得先读出来,再取其值..for example:if (sdr .Read())
    {
       tbTitle.Text = (string)sdr["Title"];
    }
      

  5.   

    来学习一下
    用 sbTitle.Text = sdr["Title"].ToString()可以嘛