如何使用登录键将标签中的文本设置为数据库中的名称

本文关键字:设置 数据库 文本 何使用 标签 登录 | 更新日期: 2023-09-27 18:21:15

IDE:Microsoft Visual Studio 2012,DBMS:Microsoft SQL Server 2012

我有两个ASP.NET网页,一个登录页和主页。我想做的是,在我登录后,它会将ID保存到会话中,然后使用它从数据库(与ID相同的表)中检索用户的名字,并将其保存到主页上的标签中。我过去可以使用:

SqlDataReader

但现在我有一个数据访问层类,它返回一个:

DataTable

这是我的问题。我似乎不知道该怎么做。到目前为止,我有以下几块:

Session.Add("StudentID", dt);

这是用于登录页面的。这是主页:

DataTable dt = (DataTable)Session["StudentUser"];
int ID = int.Parse(Session["StudentID"].ToString());
DAL.GetData("SELECT Fname FROM StudentUser WHERE StudentID = " + ID);
lblName.Text = dt["Fname"].ToString();

至于我的DAL代码,它们在这里:

public static DataTable GetData(string sql)
{
      SqlConnection con = new SqlConnection(DAL.ConnectionString);
      con.Open();
      SqlCommand com = new SqlCommand(sql, con);
      SqlDataAdapter da = new SqlDataAdapter(com);
      DataTable dt = new DataTable();
      da.Fill(dt);
      return dt;
}

我的表叫StudentUser,我想要在标签上的部分是Fname

当使用SqlDataReader(dr)时,登录的代码通常如下所示:

Session.Add("StudentID", dr["StudentID"].ToString());

主页面:

int ID = int.Parse(Session["StudentID"].ToString());
SqlCommand com = new SqlCommand("SELECT Fname FROM StudentUser WHERE StudentID = " + ID, con);
SqlDataReader dr = com.ExecuteReader();
dr.Read();
lblName.Text = dr["Fname"].ToString();
dr.Close();

SqlDataReader代码有效,但我决心尽可能使用我的数据访问层,即使这会导致我使用不熟悉的代码。请帮助亲爱的人们。:)

如何使用登录键将标签中的文本设置为数据库中的名称

问题是不能对所有可能性使用一种方法。例如,在您的示例中,您无法将参数发送到dal,这意味着您必须在dal中为这样的事情创建一个方法。

我有一个班,或多或少做你想做的事。它不是一个合适的存储库,但对于初学者来说,它可能有你需要的东西。

http://pastebin.com/xYhsSeXW

您正在调用方法DAL.GetData,但没有将DataTable保存在任何位置。。,你为什么不试试这个:

DataTable dt1 = DAL.GetData("SELECT Fname FROM StudentUser WHERE StudentID = " + ID);
lblName.Text = dt1["Fname"].ToString();

代替:

DAL.GetData("SELECT Fname FROM StudentUser WHERE StudentID = " + ID);
lblName.Text = dt["Fname"].ToString();

您需要存储从您创建的方法返回的值,否则调用该方法毫无意义。