ASP.NET(VB) 如何将 textbox.text 插入 SQL 数据库



我正在设计一个注册表单。以下是我的代码:但是在我这样做之后,那么SQL表显示的不是用户的数据....?数据库表显示 &用户名, &密码(用户名、密码...是文本框名称)

Protected Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click       
        Dim Conn As SqlConnection = New SqlConnection(".....")
        Conn.Open()
        Dim sqlstr As String = "Insert Into user_profile(username,password,nickname,realname,email) Values('" & username.Text & "','" & password.Text & "','" & nickname.Text & "','" & realname.Text & "','" & email.Text & "')"
        Dim cmd As New SqlCommand(sqlstr, Conn)
        cmd.ExecuteNonQuery()
        cmd.Cancel()
        Conn.Close()
        Conn.Dispose()
    End Sub

好的,首先,我会试一试你的问题。 然后,我们需要讨论SQL注入。

试试这个:

Dim MyValues as String = String.Format("'{0}', '{1}', '{2}', '{3}', '{4}'", username.Text, password.Text, nickname.Text, realname.Text, email.Text )
Dim sqlstr As String = "Insert Into user_profile(username,password,nickname,realname,email) Values(MyValues)"

(我还没有测试过该代码。 注意语法错误。

现在,话虽如此,了解您尝试这样做的方式的危险至关重要。 这里的严重问题是你对SQL注入攻击敞开大门。 谷歌一下。 但简而言之,使用这种方法,有人可以将诸如"删除表"之类的命令放入您的文本框中,这些命令将在您的数据库中执行。

执行此操作的正确方法是创建一个包含 INSERT 语句的存储过程,然后使用参数将值传递给它。 网络上充斥着有关如何执行此操作的教程。 你会发现一个足够容易。

祝你好运!

最新更新