ASP.NET/VB.NET/SQL Server 2012-页面继续加载

ASP.NET/VB.NET/SQL Server 2012-页面继续加载,asp.net,sql-server,vb.net,Asp.net,Sql Server,Vb.net,我正在尝试运行这段代码,每当我按下“注册”按钮时,没有任何事情发生,页面就像加载一样,但保持在同一页面上 代码: 按钮事件处理程序: Protected Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click register() End Sub 代码有问题吗 在使用SqlDataReader时,关联的SqlConnection是 忙于为SqlDataReader提供服务,

我正在尝试运行这段代码,每当我按下“注册”按钮时,没有任何事情发生,页面就像加载一样,但保持在同一页面上

代码:

按钮事件处理程序:

Protected Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click

    register()


End Sub
代码有问题吗

在使用SqlDataReader时,关联的SqlConnection是 忙于为SqlDataReader提供服务,无法执行其他操作 在SqlConnection上执行,而不是关闭它。情况就是这样 直到调用SqlDataReader的Close方法。例如 在调用Close之后才能检索输出参数

在尝试执行insert命令时,似乎打开了SqlDataReader。 在使用insert命令之前,我将尝试关闭它

If dr.HasRows = False Then
    dr.Close()

    ' The following lines are probably a remainder of a copy/paste operation'
    ' They are not needed and you should remove them'

    'validateSQL = New SqlCommand(sqlValidate, conn)'
    'validateSQL.CommandText = sqlValidate'
    'Dim reader As SqlDataReader = validateSQL.ExecuteReader()'
    'reader.Read()'

    ' Now execute the insert command
此外,除了performance参数外,检查用户是否存在的命令也是错误的,因为它引入了Sql注入的可能性

请尝试这些更改

 sqlValidate = "SELECT * FROM users  where username=@uname"
 validateSQL = New SqlCommand(sqlValidate, conn)
 validateSQL.Parameters.AddWithValue("@uname", txtUserName.Text)
 Dim dr As SqlDataReader = validateSQL.ExecuteReader()
 Dim userFound = dr.HasRows
 dr.Close()
 if userFound = False then
    ......

哪种代码调用此sub?这不是事件处理程序,您还没有显示处理单击事件的代码。@Steve我更新了问题。谢谢因此,我删除了额外打开的连接,现在我在validateSQL=New-SqlCommandsqlValidate,conn Dim dr中遇到另一个错误,即SqlDataReader=validateSQL.ExecuteReader conn。关闭错误为:无效列名“cdarwin”。其中cdarwin是在username textboxNo conn.Close中输入的用户名。这会关闭连接,您需要关闭dr.Close的是DataReader…列名无效,因为您不使用参数,并且在原始命令中忘记了单个引号OK谢谢!你知道为什么它会给我这个错误是因为:sqlValidate=SELECT*来自username=+txtUsername.Text.toString的用户错误是无效的列名“cdarwin”。其中cdarwin是在用户名文本框中输入的用户名
 sqlValidate = "SELECT * FROM users  where username=@uname"
 validateSQL = New SqlCommand(sqlValidate, conn)
 validateSQL.Parameters.AddWithValue("@uname", txtUserName.Text)
 Dim dr As SqlDataReader = validateSQL.ExecuteReader()
 Dim userFound = dr.HasRows
 dr.Close()
 if userFound = False then
    ......