当前位置: 首页 > 知识库问答 >
问题:

如何存储从"选择"查询中获得的值到ASP. net中的会话变量

司寇凯
2023-03-14

我是新来的ASP. net。我一直从会话[]变量中获取值并存储到会话变量中,但我无法存储在ASP. net中运行SELECT查询后获得的值。

示例:从雇员中选择Fname, Mname, Lname

运行此查询后,我想将"Fname"、"Mname"和"Lname"的值存储在3个单独的会话变量中,以便我可以从这些变量中检索所有进一步的页面。

这是我的代码,用来检查它是否是一个有效的用户。我想要的是,一旦它通过身份验证,它的所有数据都将从数据库中获取,并存储在会话变量中,以便它们可以直接用于所有页面。

`受保护的无效按钮1\u单击(对象发送方,事件参数e){SqlConnection conn=new SqlConnection(ConfigurationManager.ConnectionString[“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();

        }


    }`

共有2个答案

娄阳舒
2023-03-14

如果您使用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个结果,变量会话只存储第一个结果

子车鸿运
2023-03-14

您需要修改选择语句,以恢复您要查找的字段。我不熟悉你的数据库,但它大概是这样的:

Select Fname, Mname , Lname from employee inner join USERDETAILS on employee.employeeid = userdetails.employeeid

然后,使用ExecteScalar而不是ExecteReader,如下所示:

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();
 }

您可以对这段代码进行很多改进(使用参数化查询),但这很有希望为您提供所需的内容。

 类似资料:
  • 问题内容: 我需要以键值对的形式在数据库(mySQL)中存储一些项目及其属性。我正计划如下。 我将使用两个表和。 现在,如果我必须选择“效果”为“冷却”的项目,则可以使用以下查询进行操作(结果将为我提供“ AC”和“冰箱”)。 我想知道如何编写查询以选择与多个属性匹配的项目,例如 选择“效果”为“冷却”且“消耗”为“有效”的所有项目(与“ AC”项目匹配)。 选择所有“类型”为“ split”或“

  • 在我的AppMapper.xml中,我有一个查询,如: 假设它将返回姓名,地址,年龄,职业,这些都是字符串。我用这个对吗? *我正在询问是使用resultType=String还是使用resultMap“PersonProfileObj” 我的理解正确吗?

  • 我有一个表,其中有多个条目对应一个FK。我想找出没有某些条目的FK值,例如 我的表有以下条目。 现在,我想从这个表中过滤所有没有ab3或ab4的FK。当然,我期望不同的值,即在这种情况下,结果将是FK=100和200。 我使用的查询是 当然,此查询不会获取所需的结果。

  • 此组件来自https://github.com/skratchdot/react-bootstrap-multiselect handleChange()函数中应该写什么?

  • 我有一个超文本标记语言选择框,在我的jsp中启用了多选择。我从其他按钮动态填充选项。因此,用户不会从该选择框中选择任何值。我必须将selectbox的所有值传递给其他jsp。 我正在使用表单操作提交浏览jsp。这样做时,我无法获得所有的选择框值。 此选项仅提供该多选框中的选定值。我想要的是从selectbox中获取所有值,无论是否选中。 谢谢