在 Visual Studio 中创建 ASP.NET 项目时的默认网站模板会在登录到 LoginView 时显示用户的用户名。我想用用户的名字替换它。我将其存储在数据库中,因此在 Site.master 页面中我尝试了以下操作(在页面 onload 中):
MembershipUser user = Membership.GetUser();
string id = user.ProviderUserKey.ToString();
SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
try
{
using (connection)
{
using (SqlCommand con_get = new SqlCommand("SELECT firstname FROM x WHERE userId='" + id + "'", connection)) //Executes SQL command
{
try
{
connection.Open(); //Opens the database connection
using (SqlDataReader reader = con_get.ExecuteReader())
{
if (reader != null)
{
while (reader.Read())
{
Label label1 = (Label)sender;
label1.Text = reader["x"].ToString();
}
}
}
}
catch
{
}
finally
{
connection.Close(); //Closes the database connection
}
}
}
}
catch
{
}
目前这不起作用。我也尝试不使用发件人,只是尝试使用 label1.Text = reader["x"].ToString(); 但这没有用。
有人对我如何使这项工作有任何建议吗?
另外,这是正确的方法吗?当然有一种更有效的方法来加载名字而不是每次用户导航到不同的页面时都重新加载(因此减少了对数据库的查询数)?