【发布时间】:2016-06-04 23:02:31
【问题描述】:
我的 Asp.NET 项目中有登录页面,我想要的基本上是获取返回 i_idficha、contrasena 和 s_nombre 的查询列的行。名为 s_nombre 的列将保存在变量 SESSION 中。这是我所拥有的:
Protected Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Threading.Thread.Sleep(2000)
Dim cmd As New SqlCommand("SELECT dbo.USUARIO.i_idficha, dbo.CONTRASENA_USUARIO.s_contrasena, dbo.USUARIO.s_nombre FROM dbo.USUARIO INNER JOIN dbo.CONTRASENA_USUARIO ON dbo.USUARIO.i_idficha = dbo.CONTRASENA_USUARIO.i_ficha WHERE i_idficha = @ficha AND s_contrasena = @pass", cn)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@ficha", SqlDbType.Int).Value = txtUser.Text
cmd.Parameters.AddWithValue("@pass", SqlDbType.VarChar).Value = txtPass.Text
cn.Open()
Dim adp As New SqlDataAdapter(cmd)
Dim table As New DataTable()
adp.Fill(table)
Dim nombre = table.Rows("s_nombre").ToString()
If table.Rows.Count <> 0 Then
If CheckBox1.Checked Then
Response.Cookies("FICHA").Value = txtUser.Text
Response.Cookies("CONTRASENA").Value = txtPass.Text
Response.Cookies("FICHA").Expires = DateTime.Now.AddDays(10)
Response.Cookies("CONTRASENA").Expires = DateTime.Now.AddDays(10)
Else
Response.Cookies("FICHA").Expires = DateTime.Now.AddDays(-1)
Response.Cookies("CONTRASENA").Expires = DateTime.Now.AddDays(-1)
End If
Session("NOMBRE") = nombre
Response.Redirect("~/Default.aspx")
Else
Panel1.Visible = True
End If
End Sub
我在这里所做的是声明一个名为 nombre 的变量,它等于
table.Rows("s_nombre").ToString()
并将其保存在变量 SESSION("NOMBRE") 中但不起作用。
这是错误:
输入的字符串格式不正确
这是我的 Default.aspx 代码隐藏:
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Session("FICHA") <> Nothing Then
Label1.Text = "Bienvendio <i aria-hidden='true' class='glyphicon glyphicon-user'></i> " & Session("NOMBRE").ToString()
Else
Response.Redirect("~/Login.aspx")
End If
End Sub
Protected Sub linkBtnLogOut_Click(sender As Object, e As EventArgs) Handles linkBtnLogOut.Click
Session("FICHA") = Nothing
Response.Redirect("~/Login.aspx")
End Sub
如何保存我的查询中名为 s_nombre 的列?
【问题讨论】:
标签: asp.net vb.net login datatable