为什么我的.net应用程序通过用户输入接受SQL查询?

时间:2017-01-05 21:56:16

标签: mysql sql .net mariadb

我目前正在编写一个允许用户查询数据库的快速.net程序

我已经让它工作到了能够运行硬编码的SELECT语句但是当我得到" sql"变量来查看文本框中的内容(用户输入)它会导致错误。即使我将硬编码的SQL查询复制并粘贴到用户文本框

,也会发生这种情况

这是我的代码:

Imports MySql.Data.MySqlClient

Public Class form_queueDepth

Public dbconn As New MySqlConnection
Public sql As String
Public dbread As MySqlDataReader
Public dbcomm As MySqlCommand

Private Sub form_queueDepth_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    dbconn = New MySqlConnection("Data Source=10.232.7.41;user id=Alex;password=abc;database=alexvb")

    Try
        dbconn.Open()
        MsgBox("Succeed")
    Catch ex As Exception
        MsgBox("Unable to connect: " & ex.Message.ToString)
    End Try
End Sub

Private Sub button_ExecuteQuery_Click(sender As Object, e As EventArgs) Handles button_ExecuteQuery.Click
    sql = "SELECT * FROM depth_store WHERE ID < '10';"
    dbcomm = New MySqlCommand(sql, dbconn)
    MsgBox(sql)
    Try
        dbread = dbcomm.ExecuteReader()
        While dbread.Read
            listBox_QueryResults.Items.Add(dbread("Queue_Manager").ToString() & " | " & dbread("Queue").ToString() & " | " & dbread("DTime").ToString() & " " & dbread("QueueDepth").ToString())
        End While
        MsgBox("Success")

    Catch ex As Exception
        MsgBox("Error: " & ex.Message.ToString)
    End Try
End Sub
End Class

所以上面的代码可以工作但是我改变的时刻&#34; sql =&#34; SELECT * FROM depth_store WHERE ID&lt; &#39; 10&#39 ;;&#34; to&#34; sql =(textBox_UserQuery).ToString&#34;然后复制&amp;粘贴查询它收到一个错误说明:

http://i66.tinypic.com/2pqnxmo.png

非常感谢任何建议/帮助 - 如果您需要任何其他信息,请与我们联系

1 个答案:

答案 0 :(得分:1)

textBox_UserQuery 是TextBox实例的名称 ToString()方法返回类的名称

IE: System.Windows.Forms.TextBox

如果要使用TextBox的内容,则需要属性Text。

sql = textBox_UserQuery.Text

说,我希望这个节目&#39;仅供您内部使用。如果不是,您将放弃销毁整个数据库的能力。 (DELETE FROM .....)