我正在尝试使用会话将一些变量发送到下一页“ProcedureSelectionForm.aspx”。如您所见,会话已被注释掉。下面的代码将起作用(当然不发送变量)。但是,当您删除注释时,.onclick函数会重新加载页面,而不是导航到“ProcedureSelectionForm.aspx”。出于这个原因,我相信这就是我的问题所在。前两列是数据库中的“帐户”和“密码”。我没有拼错任何东西。我是VB和ASP.net的新手,我很欣赏一些关于发生了什么以及为什么我想要的功能没有实现的解释。谢谢你的帮助!
If IsValid Then
Try
Dim strSQL = "select * from CreatePatient where Account = @Account and Password = @Password"
Using CCSQL = New SqlConnection(ConfigurationManager.ConnectionStrings("CreatePatientConnectionString").ConnectionString)
Using CCUser = New SqlCommand(strSQL, CCSQL)
CCSQL.Open()
CCUser.Parameters.Add("@Account", Data.SqlDbType.VarChar).Value = PatientAccount.Text
CCUser.Parameters.Add("@Password", Data.SqlDbType.VarChar).Value = PatientPass.Text
CCUser.ExecuteNonQuery()
'Using reader As SqlDataReader = CCUser.ExecuteReader()
'If reader.HasRows Then
'reader.Read()
'Session("user") = reader("Account")
'Session("pass") = reader("Password")
Response.Redirect("ProcedureSelectionForm.aspx")
'End If
'End Using
End Using
End Using
Catch ex As Exception
Label1.Text = ex.Message
End Try
End If
答案 0 :(得分:1)
我的朋友能够抽出时间帮助我。除了关闭连接之外,我不确定他做了什么不同的事情
If IsValid Then
Dim CCSQL As New SqlConnection
Dim CCUser As New SqlCommand
Dim strSQL As String
Dim dtrUser As SqlDataReader
Try
CCSQL.ConnectionString = ConfigurationManager.ConnectionStrings("CreatePatientConnectionString").ConnectionString
strSQL = "Select * from CreatePatient where Account=@user and Password=@pwd"
CCUser.CommandType = Data.CommandType.Text
CCUser.CommandText = strSQL
CCUser.Parameters.Add("@user", Data.SqlDbType.VarChar).Value = PatientAccount.Text
CCUser.Parameters.Add("@pwd", Data.SqlDbType.VarChar).Value = PatientPass.Text
CCSQL.Open()
CCUser.Connection = CCSQL
dtrUser = CCUser.ExecuteReader()
If dtrUser.HasRows Then
dtrUser.Read()
Session("user") = dtrUser("Account")
Session("level") = dtrUser("Password")
Response.Redirect("ProcedureSelectionForm.aspx")
Else
Label1.Text = "Please check your user name and password"
End If
dtrUser.Close()
CCSQL.Close()
Catch ex As Exception
Label1.Text = ex.Message
End Try
End If
我的截止日期很紧,但我会回复那些对答案感兴趣的人。谢谢你的努力。
答案 1 :(得分:-1)
当您实际进行查询时(即SQL" .ExecuteNonQuery()
"语句,您不想做SELECT
。您可以执行{.ExecuteReader()
1}}读取这两个值。
另外,我认为您正在尝试验证帐户和密码;否则您只需设置Session("user") = PatientAccount.Text
并设置Session("pass") = PatientPass.Text
。