脚本源代码如下:
<script runat="server">
    string strcnn="server=localhost;uid=sa;pwd=wbq;database=WebDate_WBQ";
    SqlConnection cnn;
    SqlCommand cmd;    void Page_Load(object sender, EventArgs e) {
       string userID=Request.QueryString["userID"];
       cnn=new SqlConnection(strcnn);
       cnn.Open();
       cmd=new SqlCommand("select * from users where userID="+userID+"",cnn);
       SqlDataReader dr=cmd.ExecuteReader();
       Label1.Text=dr("userID").ToString();//以下代码有错。
       TextBox1.Text=dr("userName").ToString();
       TextBox2.Text=dr("pwd").ToString();
       TextBox3.Text=dr("sex").ToString();
       TextBox4.Text=dr("regDate").ToString();
       TextBox5.Text=dr("QQ").ToString();
       TextBox6.Text=dr("email").ToString();
       TextBox7.Text=dr("address").ToString();
       dr.Close();
       cnn.Close();
    }
</script>编译错误信息如下:
编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0118: “dr”表示“变量”,此处应为“方法”源错误: 行 18:        cmd=new SqlCommand("select * from users where userID="+userID+"",cnn);
行 19:        SqlDataReader dr=cmd.ExecuteReader();
行 20:        Label1.Text=dr("userID").ToString();
行 21:        TextBox1.Text=dr("userName").ToString();
行 22:        TextBox2.Text=dr("pwd").ToString();

解决方案 »

  1.   

    SqlDataReader dr=cmd.ExecuteReader();
    行 20:        Label1.Text=dr("userID").ToString();
    行 21:        TextBox1.Text=dr("userName").ToString();
    行 22:        TextBox2.Text=dr("pwd").ToString();在20行前加一句
    dr.Read();
      

  2.   

    老兄啊,在20行前加一句:dr.Read();也不行啊,还是原来的错误!
      

  3.   

    dr["userID"].ToString();
    ()->[]
      

  4.   

    ----dr["userID"].ToString();
    ()->[]这有错吗?我改成:Lable1.Text=(string).dr["userID"]也不对啊!
      

  5.   

    sqlCon.Open();
                SqlDataReader sqlReader = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
                string[] strCourses = new string[20];
                string[] iValues = new string[20];
                int i = 0;
                while (sqlReader.Read())
                {
                    iValues[i] = sqlReader.GetString(0);
                    strCourses[i] = sqlReader.GetString(1);
                    i++;
                }
                sqlReader.Close();这是个例子
      

  6.   

    我改成:
           Label1.Text=dr.GetString(0);
           TextBox1.Text=dr.GetString(1);
           TextBox2.Text=dr.GetString(2);
           TextBox3.Text=dr.GetString(3);
           TextBox4.Text=dr.GetString(4);
           TextBox5.Text=dr.GetString(5);
           TextBox6.Text=dr.GetString(6);
           TextBox7.Text=dr.GetString(7);
    后原来的错误消失了SqlDataReader sqlReader = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
    括号中的代码什么意思啊?怎么我把自己的改成
    SqlDataReader dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
    它又出现在了:第 1 行: '=' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
    异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误。如果改成:SqlDataReader dr=cmd.ExecuteReader();也是同样的错误!
      

  7.   

    cmd=new SqlCommand("select * from users where userID="+userID+"",cnn);语法有错误!少了引号!!!cmd=new SqlCommand("select * from users where userID= '"+userID+"'",cnn);
      

  8.   

    lizhizhe2000(彬彬)你干脆就代他写下作业吗!
      

  9.   

    private static void ReadOrderData(string connectionString)
    {
        string queryString ="SELECT OrderID, CustomerID FROM dbo.Orders";//查询语句
        string str1="";
        string str2="";
        using (SqlConnection connection =new SqlConnection(connectionString))
        {
            SqlCommand command =new SqlCommand(queryString, connection);//构造Command
            connection.Open();//打开连接        SqlDataReader reader = command.ExecuteReader();//生成DataReader        if(reader.Read())//用循环依次读取数据
            {
    //将数据赋值
                str1=reader[0].ToString();
                str2=reader[1].ToString();            
            }
            reader.Close();//关闭Reader
        }
    }
    另外你也是第一次发贴吧!结贴时在贴子右上角-》管理-》给分
      

  10.   

    同意楼上的说法,建议CSDN再开一个作业频道……顺便卖点儿论文什么的……
      

  11.   


    郁闷,又出现新的错了!在没有任何数据时进行无效的读取尝试。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。源错误: 
    行 19:        SqlDataReader dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
    行 20:        dr.Read();
    行 21:        Label1.Text=dr.GetString(0);
    行 22:        TextBox1.Text=dr.GetString(1);
    行 23:        TextBox2.Text=dr.GetString(2);
     
      

  12.   

    感谢大家!一切解决了!
    这东西关键:Label1.Text=dr.GetValue(0).ToString().Trim();
    如果是Label1.Text=dr.GetString(0)会出现以下错误:
    指定的转换无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
    异常详细信息: System.InvalidCastException: 指定的转换无效。再次感谢大家!