从数据库的不同行中检索一个值到标签 ASP.NET
Retrive a value from different rows from database to lable ASP.NET
我在 ASP.NET 中有一个作业使用 Visual Studio
我创建了三个网络表单并将它们连接到数据库(注册网络表单、登录网络表单、UserDetailWebform)
当我使用登录页面时,它会将我发送到用户详细信息页面,在用户详细信息页面中,它总是显示数据库中第一个帐户的第一个全名和电子邮件,而对于另一个帐户,它不会显示任何内容(标签不会变)
这是我的数据库
enter image description here
例如:当我在登录页面上按登录时,我想查看 Kelly 的全名和她的电子邮件,在我下面的代码中,我只能看到第一个帐户的全名和电子邮件,其他帐户我无法检索到他们的全名和电子邮件
我在 UserDetail 页面中使用的代码
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
string checkUser = "select * from userDetail";
SqlCommand com = new SqlCommand(checkUser, con);
SqlDataReader dr = com.ExecuteReader();
if (dr.Read())
{
if (Session["Email"].ToString() == dr["Email"].ToString())
{
Label1.Text = dr["Fname"].ToString();
Label2.Text = dr["Email"].ToString();
}
}
}
好吧,Read() 命令一次只读取一行。
我建议你这样做:
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
string strSQL = "SELECT * FROM userDetail WHERE email = @email";
using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
{
conn.Open();
cmdSQL.Parameters.Add("@email", SqlDbType.NVarChar).Value = Session["Email"];
DataTable rstData = new DataTable();
rstData.Load(cmdSQL.ExecuteReader());
Label1.Text = rstData.Rows[0]["Fname"].ToString();
Label2.Text = rstData.Rows[0]["Email"].ToString();
}
}
我在 ASP.NET 中有一个作业使用 Visual Studio
我创建了三个网络表单并将它们连接到数据库(注册网络表单、登录网络表单、UserDetailWebform)
当我使用登录页面时,它会将我发送到用户详细信息页面,在用户详细信息页面中,它总是显示数据库中第一个帐户的第一个全名和电子邮件,而对于另一个帐户,它不会显示任何内容(标签不会变)
这是我的数据库
enter image description here
例如:当我在登录页面上按登录时,我想查看 Kelly 的全名和她的电子邮件,在我下面的代码中,我只能看到第一个帐户的全名和电子邮件,其他帐户我无法检索到他们的全名和电子邮件
我在 UserDetail 页面中使用的代码
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
string checkUser = "select * from userDetail";
SqlCommand com = new SqlCommand(checkUser, con);
SqlDataReader dr = com.ExecuteReader();
if (dr.Read())
{
if (Session["Email"].ToString() == dr["Email"].ToString())
{
Label1.Text = dr["Fname"].ToString();
Label2.Text = dr["Email"].ToString();
}
}
}
好吧,Read() 命令一次只读取一行。
我建议你这样做:
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
string strSQL = "SELECT * FROM userDetail WHERE email = @email";
using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
{
conn.Open();
cmdSQL.Parameters.Add("@email", SqlDbType.NVarChar).Value = Session["Email"];
DataTable rstData = new DataTable();
rstData.Load(cmdSQL.ExecuteReader());
Label1.Text = rstData.Rows[0]["Fname"].ToString();
Label2.Text = rstData.Rows[0]["Email"].ToString();
}
}