使用DB中的用户名获取配置文件ID

时间:2012-08-22 19:46:05

标签: c# asp.net

我必须抓住登录页面中输入的用户名并获取相应的profileid(DB中的列)并在另一页面显示我的DAL代码

public DataTable getall()
   {
       SqlConnection conn1 = Generic.DBConnection.OpenConnection();
       DataTable dt=new DataTable();
       try
       {
             string sql = "Select * from Profile_Master";
             SqlCommand cmds = new SqlCommand(sql,conn1);
             SqlDataAdapter sqlDa = new SqlDataAdapter(cmds);
           sqlDa.Fill(dt);


       }
       catch (Exception ex)
       {

           throw ex;
       }
       return dt;
   }

我的用户界面

DataTable dt1 = new DataTable();
                ProfileMasterDAL dal = new ProfileMasterDAL();
                dt1 = dal.getall();
                if (dt1.Rows.Count > 0)
                {
                    Session["sdds"] = dt1.Rows[0]["FirstName"].ToString();
                    Session["EmailId"] = dt1.Rows[0]["EmailID"].ToString();
                    Session["pid"] = dt1.Rows[0]["NewidColumn"].ToString();
                    Response.Redirect("~/Myhome.aspx");

但是我能够获得DB中的第一个值而不是用户名的相应值吗?

1 个答案:

答案 0 :(得分:0)

您的select语句有10行。并且您所需的行位于第5位。 当你说dt1.Rows [0] [“FirstName”]时,你只会获得第一条记录而不是第5条记录。

如果你想使这个工作,你可以在select语句中添加where条件,它会为你返回一个必需的行。

类似......

“从Profile_Master PM中选择*,其中PM.UserName = @username”

其中@username是您从登录页面输入的内容。并且在数据库表中是唯一的