为什么我的 .net 应用程序不接受通过用户输入的 SQL 查询?
Why won't my .net application accept the SQL Query via user input?
我目前正在编写一个允许用户查询数据库的快速 .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
所以上面的代码可以工作但是当我改变 "sql = "SELECT * FROM depth_store WHERE ID < '10';" 到 "sql = (textBox_UserQuery).ToString" 然后复制& 粘贴查询它抛出一个错误说明:
http://i66.tinypic.com/2pqnxmo.png
任何 suggestions/help 将不胜感激 - 如果您需要任何其他信息,请告诉我
textBox_UserQuery 是 TextBox 实例的名称。
ToString() 方法 returns 名称 class
即:System.Windows.Forms.TextBox.
如果您想使用文本框的内容,您需要 属性 文本。
sql = textBox_UserQuery.Text
说到这里,我希望这个'program'只供您内部使用。否则,您将放弃销毁整个数据库的能力。 (从......删除)
我目前正在编写一个允许用户查询数据库的快速 .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
所以上面的代码可以工作但是当我改变 "sql = "SELECT * FROM depth_store WHERE ID < '10';" 到 "sql = (textBox_UserQuery).ToString" 然后复制& 粘贴查询它抛出一个错误说明:
http://i66.tinypic.com/2pqnxmo.png
任何 suggestions/help 将不胜感激 - 如果您需要任何其他信息,请告诉我
textBox_UserQuery 是 TextBox 实例的名称。
ToString() 方法 returns 名称 class
即:System.Windows.Forms.TextBox.
如果您想使用文本框的内容,您需要 属性 文本。
sql = textBox_UserQuery.Text
说到这里,我希望这个'program'只供您内部使用。否则,您将放弃销毁整个数据库的能力。 (从......删除)