我有一个SQL Server数据库,其中包含一个名为student
的表,其列为:
该方案是用户已经登录并且他/她的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()
答案 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