我是ASP.net的新手。我一直从Session []变量中获取值并存储到Session变量中,但是我无法存储在ASP.net中运行SELECT查询后获得的值。
示例:Select Fname, Mname , Lname from employee
运行此查询后,我想存储" Fname"," Mname"的值。和" Lname"在3个单独的会话变量中,以便我可以从这些变量中检索所有其他页面。
继承我的代码以检查它是否是有效用户。我想要的是,一旦通过身份验证,其所有数据都将从数据库中获取并存储在会话变量中,以便它们可以直接在所有页面上使用。
`protected void Button1_Click(object sender,EventArgs e) { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings [" UserDetailsForGridViewConnectionString"]。ConnectionString); conn.Open();
string loginCheck = " select count(*) from USERDETAILS where EMPLOYEEID='" + TextBox1.Text + "' and PASSWORD='" + TextBox2.Text + "'";
SqlCommand myloginCheckcmd = new SqlCommand(loginCheck, conn);
int temp = Convert.ToInt32(myloginCheckcmd.ExecuteScalar().ToString());
if (temp == 1)
{
LoginStatus.Text = "SUCCESS !!";
temp = 0;
Session["EMPLOYEEID_sn"] = TextBox1.Text;
Session["IsLogin"] = "yesLogin";
//TextBox1.Text = "";
Response.Redirect("~/CustomPages/Lecturer_PersonalDetailsPage.aspx");
conn.Close();
}
else
{
LoginStatus.Text = "Invalid Username/Password";
temp = 0;
TextBox1.Text = "";
conn.Close();
}
}`
答案 0 :(得分:0)
如果您使用C#开发,可以使用:
DataSet ds = new DataSet();
ds = result of query;
Session["fname"] = ds.Tables[0].Rows[0]["FNAME"];
Session["mname"] = ds.Tables[0].Rows[0]["MNAME"];
Session["lname"] = ds.Tables[0].Rows[0]["LNAME"];
如果您使用vb开发,则可以使用:
Dim ds As New DataSet()
ds = return of query
Session("fname") = ds.Tables(0).Rows(0)("FNAME")
Session("mname") = ds.Tables(0).Rows(0)("MNAME")
Session("lname") = ds.Tables(0).Rows(0)("LNAME")
注意:您必须确定查询中的结果数,因为查询返回的结果超过1,变量会话只存储第一个
答案 1 :(得分:0)
您需要修改select语句以恢复您正在寻找的字段。我不熟悉你的数据库,但它会是这样的:
Select Fname, Mname , Lname from employee inner join USERDETAILS on employee.employeeid = userdetails.employeeid
然后使用ExecuteReader而不是ExecuteScalar:
var rdr = myloginCheckcmd.ExecuteReader();
if(rdr.HasRows)
{
while(rdr.Read())
{
Session("fname") = rdr[0];
Session("mname") = rdr[1];
Session("lname") = rdr[2];
}
LoginStatus.Text = "SUCCESS !!";
Response.Redirect("~/CustomPages/Lecturer_PersonalDetailsPage.aspx");
conn.Close();
}
else
{
LoginStatus.Text = "Invalid Username/Password";
TextBox1.Text = "";
conn.Close();
}
您可以对此代码进行大量改进(查看使用参数化查询),但这有望为您提供您正在寻找的内容。