如何使用会话从数据库中显示特定列数据到标签?

时间:2013-07-03 22:57:43

标签: c# asp.net sql sql-server vb.net

我有一个SQL Server数据库,其中包含一个名为student的表,其列为:

  • std_id
  • 用户名
  • 密码
  • 年龄
  • 地址

该方案是用户已经登录并且他/她的username被保存在会话中,而他正在导航标签时应该在标签中显示已登录用户的年龄。

我不知道如何做到这一点,很多例子展示了如何在不使用WHERE子句或不使用会话的情况下将数据从数据库放到标签中。

这是我使用的代码,该代码无法显示应显示年龄的页面。

    Dim con As String = ConfigurationManager.ConnectionStrings("con").ConnectionString
    Dim mycon As New SqlConnection(con)
    Dim agequery As String

    mycon.Open()

    agequery = "select age from student where username='" + Session("user")
    Dim com As New SqlCommand(agequery, mycon)
    lbl_agecurrent.Text = CStr(com.ExecuteScalar)

    mycon.Close()

1 个答案:

答案 0 :(得分:2)

我不确定这是否重要,但我通常在Session变量周围使用方括号。此外,您忘记了一个撇号来关闭您的agequery语句。因此,当执行SQL语句时,它无法找到匹配的用户名,因此会向您的标签返回一个空值,这意味着您的用户不会显示任何内容。

如果我理解你的规格,我会写如下。

string ageQuery = "SELECT age FROM student WHERE username='" + Session["user"] + "'"
string connString = ConfigurationManager.ConnectionStrings("con").ConnectionString;

using (SqlConnection sqlConnection = new SqlConnection(connString))
using (SqlCommand sqlCommand = new SqlCommand(ageQuery, sqlConnection))
{
    sqlConnection.Open();
    lbl_agecurrent.Text = (com.ExecuteScalar).ToString();
}

如果您正在寻找有关此问题的更多信息,请查看http://www.dotnetperls.com/sqlconnection