SqlConnection Conn = new SqlConnection("server=(local)\\SQLEXPRESS;uid=sa;pwd=asdf;database=GraduationProject;");
            Conn.Open();
            string strcom = "select UserName from UserTable";
            SqlCommand myCom = new SqlCommand(strcom, Conn);
            SqlDataReader sqlDR = myCom.ExecuteReader();
            string asdf = sqlDR["UserName"].ToString();
            Label1.Text = asdf;      执行页面后的错误信息异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。源错误:行 39:             SqlCommand myCom = new SqlCommand(strcom, Conn);
行 40:             SqlDataReader sqlDR = myCom.ExecuteReader();
行 41:             string asdf = sqlDR["UserName"].ToString();
行 42:             Label1.Text = asdf;       
行 43: 
源文件: D:\文档\Visual Studio 2008\Projects\GraduationProject\GraduationProject\Ask.aspx.cs    行: 41 表里有内容啊,在查询分析器里执行sql语句也是正常的,为什么sqldatareader里就是空的。还有一个问题,如何读取表里的一个int型数值。比如 age 之类的,可以用Convent.toInt32么?

解决方案 »

  1.   

    sqlDR .read();没有read从哪来的数据?????
      

  2.   

    SqlDataReader  是一个阅读器,你得sqlDR .read();
    才有数据,不知道能不能在sqlDR取数据,我们一般都是返回一个dataset或者datatable  在这里取值。
      

  3.   

     首先你要  sqlDR .read(); 下赛   看看MSDN
      

  4.   

        SqlConnection Conn = new SqlConnection("server=(local)       SQLEXPRESS;uid=sa;pwd=asdf;database=GraduationProject;");
                Conn.Open();
                string strcom = "select UserName from UserTable";
                SqlCommand myCom = new SqlCommand(strcom, Conn);
                SqlDataReader sqlDR = myCom.ExecuteReader();while (sqlDR.Read())
            {
               string asdf = sqlDR["UserName"].ToString();
            Label1.Text = asdf;  
                       }
    试试
      

  5.   

    呃,之前我看msdn上关于read方法是阅读下一条。我以为第一条不用read。囧感谢各位