代码如下:
        SqlConnection conn = new SqlConnection("server=192.168.162.8.;uid=sa;pwd=pwd;database=sqq");
        SqlCommand cmd=new SqlCommand("GetSqquser1",conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        DataTable dt = new DataTable("sqquser");
        SqlDataReader myreader;
       
         // 下面几行是把数据库中的数据显示到GridView
        cmd.CommandType=CommandType.StoredProcedure;
            
        da.SelectCommand.Connection.Open();
       
        cmd.ExecuteNonQuery();
    
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
        //下面几行是把数据库中的pass字段的值显示在LABEL控件上。如果下面几行屏蔽掉,上面的GridView能正常显示;
        //不屏蔽的话就有出错提示
        
        myreader = cmd.ExecuteReader();
         
        Label1.Text=myreader.GetString(3);出错信息:
“/TEST”应用程序中的服务器错误。
--------------------------------------------------------------------------------在没有任何数据时进行无效的读取尝试。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。源错误: 只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL: 1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:   <%@ Page Language="C#" Debug="true" %>或:2. 将以下的节添加到应用程序的配置文件中:<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。  堆栈跟踪: 
[InvalidOperationException: 在没有任何数据时进行无效的读取尝试。]
   System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout) +316
   System.Data.SqlClient.SqlDataReader.GetString(Int32 i) +16
   _Default.Page_Load(Object sender, EventArgs e) +241
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
   System.Web.UI.Control.OnLoad(EventArgs e) +80
   System.Web.UI.Control.LoadRecursive() +49
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3750 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433 

解决方案 »

  1.   

          myreader = cmd.ExecuteReader();
            if (myreader.HasRows)
           Label1.Text = "1";
            else
           Label1.Text = "2";  //运行后显示的结果是1,说明里面有从数据库中拿到得记录
      

  2.   

    myreader = cmd.ExecuteReader(); 
         myreader.Read();
         Label1.Text=myreader.GetString(3);
    这两句当中加一句
    myreader.Read();
    SqlDataReader必须在Read()方法后才能调用GetXXX()方法