【问题标题】:ASP.NET(VB) How to insert textbox.text into SQL database?ASP.NET(VB) 如何将 textbox.text 插入 SQL 数据库?
【发布时间】:2014-12-03 15:32:10
【问题描述】:

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

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

【问题讨论】:

  • 你真的应该考虑使用SqlParameters,不要连接。
  • 嗨。我的用户名是DROP TABLE user_profile; -- 注意不要使用我的用户名。 SQLI
  • Sql Injection 问题的一部分,检查this question/answer 是否适用于您的情况
  • 小鲍比桌?

标签: sql asp.net vb.net


【解决方案1】:

好的,首先,我会回答你的问题。然后,我们需要谈谈 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 注入攻击。去谷歌上查询。但简而言之,使用这种方法,有人可以将“drop table”之类的命令放入您的文本框中,这些命令将在您的数据库中执行。

执行此操作的正确方法是创建一个包含 INSERT 语句的存储过程,然后将您的值与参数一起传递给它。网络上到处都是关于如何做到这一点的教程。你会发现一个很容易。

祝你好运!

【讨论】:

  • 非常感谢!它完成了!好!
猜你喜欢
  • 2012-09-20
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多