0

我必须捕获在登录页面中输入的用户名并获取相应的 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");

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

4

1 回答 1

0

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

如果您想完成这项工作,请将 where 条件添加到您的 select 语句中,它会为您返回一个所需的行。

就像是..

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

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

于 2012-08-23T07:03:55.540 回答