vb.net MySQL запрос выполняется в один клик - PullRequest
0 голосов
/ 22 января 2019

Мне нужно получить данные для входа в MySQL из файла блокнота, сохраненного на компьютере, подключиться к серверу и выполнить запрос, и все это одним щелчком мыши.

  1. У меня есть этот код, но проблема в том, что есть раздел "public Sub Savenames (ByRef sqlstatement As String)", и я не знаю, как включить его в событие нажатия кнопки.

        Imports MySql.Data.MySqlClient
        Public Class Admission
        Private Sub MetroButton1_Click(sender As Object, e As EventArgs) Handles admission_btn_save.Click
         If System.IO.File.Exists("D:\DBSystem\Connection\connconfig.dbs") = True Then
    
        Dim strFile As String = "D:\DBSystem\Connection\connconfig.dbs"
        Dim sr As New IO.StreamReader(strFile)
        Dim ip As String
        Dim port As String
        Dim userid As String
        Dim password As String
        Dim database As String
    
        'reading
        ip = sr.ReadLine()
        port = sr.ReadLine()
        userid = sr.ReadLine()
        password = sr.ReadLine()
        database = sr.ReadLine()
        sr.Close()
    
    
        'default connection code
        Dim serverstring As String = "server=" & ip & ";port=" & port & ";database=" & database & ";user ID=" & userid & ";password=" & password & ";OldGuids=true"
        Dim sqlconnection As MySqlConnection = New MySqlConnection
        sqlconnection.ConnectionString = serverstring
    
        Try
            If sqlconnection.State = ConnectionState.Closed Then
                sqlconnection.Open()
                MsgBox("Successfully connected to database!")
            Else
                sqlconnection.Close()
                MsgBox("connection closed!")
    
            End If
    
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    
        'reading from notepad config file
    
    
    
    
    Else
        MessageBox.Show("Do not have any previous configurations!", "Error",
           MessageBoxButtons.OK)
    End If
    End Sub
    
       'i need to eliminate this sub and add it into the button click event
       Public Sub Savenames(ByRef sqlstatement As String)
    Dim cmd As MySqlCommand = New MySqlCommand
    
    With cmd
        .CommandText = sqlstatement
        .CommandType = CommandType.Text
        .Connection = sqlconnection
        .ExecuteNonQuery()
    
    End With
    sqlconnection.Close()
    MsgBox("Successfully recorded!")
    sqlconnection.Dispose()
    
    End Sub
    
     End Class
    

мне нужно исключить этот раздел «Public Sub Savenames (ByRef sqlstatement As String)» и добавить его в событие нажатия кнопки. Я не обладаю достаточными знаниями в области программирования, так как я учусь самостоятельно. есть идеи как это сделать? (пожалуйста, покажите мне измененный код)

1 Ответ

0 голосов
/ 22 января 2019

Просто добавьте задачу этого подпрограммы в часть, где вы проверяете соединение. Так как соединение уже открыто, нет необходимости открывать его снова. Также не забудьте дать инструкцию Query .. (я полагаю, вставить)

 Private Sub MetroButton1_Click(sender As Object, e As EventArgs) Handles admission_btn_save.Click
            If System.IO.File.Exists("D:\DBSystem\Connection\connconfig.dbs") = True Then

                Dim strFile As String = "D:\DBSystem\Connection\connconfig.dbs"
                Dim sr As New IO.StreamReader(strFile)
                Dim ip As String
                Dim port As String
                Dim userid As String
                Dim password As String
                Dim database As String

                'reading
                ip = sr.ReadLine()
                port = sr.ReadLine()
                userid = sr.ReadLine()
                password = sr.ReadLine()
                database = sr.ReadLine()
                sr.Close()


                'default connection code
                Dim serverstring As String = "server=" & ip & ";port=" & port & ";database=" & database & ";user ID=" & userid & ";password=" & password & ";OldGuids=true"
                Dim sqlconnection As MySqlConnection = New MySqlConnection
                sqlconnection.ConnectionString = serverstring

                Try
                    If sqlconnection.State = ConnectionState.Closed Then
                        sqlconnection.Open()
                        MsgBox("Successfully connected to database!")
                        Dim sqlstatement As String = "Insert int >>>Your Query"
                        Dim cmd As MySqlCommand = New MySqlCommand

                        With cmd
                            .CommandText = sqlstatement
                            .CommandType = CommandType.Text
                            .Connection = sqlconnection
                            .ExecuteNonQuery()

                        End With
                        sqlconnection.Close()
                        MsgBox("Successfully recorded!")
                    Else
                        sqlconnection.Close()
                        MsgBox("connection closed!")

                    End If

                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try

                'reading from notepad config file




            Else
                MessageBox.Show("Do not have any previous configurations!", "Error",
                   MessageBoxButtons.OK)
            End If
        End Sub
...