programing

.net 응용 프로그램이 사용자 입력을 통해 SQL 쿼리를 수락하지 않는 이유는 무엇입니까?

lastmoon 2023. 8. 10. 19:09
반응형

.net 응용 프로그램이 사용자 입력을 통해 SQL 쿼리를 수락하지 않는 이유는 무엇입니까?

현재 사용자가 데이터베이스를 쿼리할 수 있는 빠른 .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

어떠한 제안이나 도움도 주시면 감사하겠습니다. 다른 정보가 필요하시면 말씀해 주십시오.

textBox_UserQuery는 TextBox 인스턴스의 이름입니다.
ToString() 메서드는 클래스의 이름을 반환합니다.

IE: 시스템.윈도우.Forms.TextBox.

텍스트 상자의 내용을 사용하려면 텍스트 속성이 필요합니다.

sql = textBox_UserQuery.Text

그렇긴 하지만, 이 '프로그램'이 오직 당신의 내부용이기를 바랍니다.그렇지 않으면 전체 데이터베이스를 삭제할 수 있는 기능을 제공하는 것입니다. (삭제 위치...)

언급URL : https://stackoverflow.com/questions/41495414/why-wont-my-net-application-accept-the-sql-query-via-user-input

반응형