protected void Button1_Click(object sender, EventArgs e)
    {
        
         string name11 = this.txtUser.Text.ToString();
        string name12 = this.txtPwd.Text.ToString();        DataSet ds = GetDataSet(name11, name12);
        if (ds.Tables[0].Rows.Count > 0)
        {
            Session["UserName"] = ds["Userid"].ToString();
            //Session["ID"] = ds["ID"].ToString();
            if (ds["peoptype"].ToString() == "1")
            { 
                Response.Redirect("index.aspx");
            }
            else if (ds["peoptype"].ToString() == "2")
            { 
                Response.Redirect("indexyy.aspx"); 
            }
            else
            { Response.Redirect("index3.aspx"); }
            //Response.Redirect("index.aspx");
            
        }        else
        {
            Response.Redirect("login.aspx");
            this.txtUser.Text = "";
            this.txtPwd.Text = "";        }
我这个是一个登录按钮,我想保存用户信息,并读取表里的一个字段,判断用户的角色,角色字段是peoptype,运行提示ds["Userid"]不能这样用,提示无法将带[]的索引应用于“System.data.dataset”类型的表达式,请问该怎么修改啊,就这地方一直修改不好了。

解决方案 »

  1.   

    这样可以将表绑定给dataset
    DataSet dataSet = new DataSet("表");
    adapter.Fill(dataSet);
    如果想了解更详细上msdn
      

  2.   

    ds.Tables[0].Rows[索引]["Userid"].ToString()
      

  3.   

     你的语句:DataSet ds = GetDataSet(name11, name12);
    那么,你得到的表就应该是:ds.Tables[0]//默认取第一张表,因为我看你返回的就一个Table。
    如果我们赋值给一个Table就是:DataTable dt=ds.Tables[0];
    如何获取他的字段你应该明白了:string peoptype=dt.Rows[index]["peoptype"].ToString();//其中index是表中的行索引。
      

  4.   


    谢谢 我用的ds.Rows[0]["peoptype"].ToString() == "1"
    可以了