我必须抓住登录页面中输入的用户名并获取相应的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中的第一个值而不是用户名的相应值吗?
答案 0 :(得分:0)
您的select语句有10行。并且您所需的行位于第5位。 当你说dt1.Rows [0] [“FirstName”]时,你只会获得第一条记录而不是第5条记录。
如果你想使这个工作,你可以在select语句中添加where条件,它会为你返回一个必需的行。
类似......
“从Profile_Master PM中选择*,其中PM.UserName = @username”
其中@username是您从登录页面输入的内容。并且在数据库表中是唯一的