Как мне написать в базу данных Mysql в VB.net с запросом

0

Я пытаюсь сделать небольшую программу, которая пишет и читает из базы данных Mysql. Читающая часть идет хорошо, но я немного застрял в записи.

Это мой код:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Absenden.Click
    Dim conn As New MySqlConnection
    Dim command As MySqlCommand
    Dim myConnectionString As String
    myConnectionString = "server=Nothing;uid=to;pwd=see;database=here;"
    conn.ConnectionString = myConnectionString

    Try
        conn.Open()
        Dim Querywrite As String
        Querywrite = "select * FROM here.message INSERT INTO message admin='" & TB_Name.Text & "' and message='" & TB_Nachricht.Text & "' and Server='" & TB_Server.Text & "' and status='" & TB_Status.Text & "' "
        command = New MySqlCommand(Querywrite, connection)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    conn.Close()
End Sub

Я думаю, что часть Querywrite - это проблема. Вход поступает из текстовых полей в форме Windows.

Спасибо за вашу помощь!

  • 2
    Ваш синтаксис SELECT ... INSERT недействителен. Что ты пытаешься сделать?
  • 0
    Кроме того, вам нужно прочитать о подготовленных выражениях, чтобы предотвратить внедрение SQL. Msdn.microsoft.com/nl-nl/library/…
Показать ещё 4 комментария
Теги:
forms
basic

1 ответ

1
Лучший ответ

Возможно, если кто-то покажет вам один раз, тогда вы получите эту идею. Главное - всегда использовать параметры; вы не только избегаете незначительных ошибок ситакса и типа, но и избегаете серьезных бедствий вредоносного ввода. Я догадался о типах данных ваших полей. Пожалуйста, проверьте свою базу данных для типов и соответствующим образом скорректируйте свой код.

Private Sub InsertData()
        Dim strQuery As String = "Insert Into message (admin, message, Server, status) Values (@admin, @message, @Server, @status);"     
        Using cn As New MySqlConnection("your connection string")
            Using cmd As New MySqlCommand With {
                    .Connection = cn,
                    .CommandType = CommandType.Text,
                    .CommandText = strQuery}
                cmd.Parameters.Add("@admin", MySqlDbType.VarString).Value = TB_Name.Text
                cmd.Parameters.Add("@message", MySqlDbType.VarString).Value = TB_Nachricht.Text
                cmd.Parameters.Add("@Server", MySqlDbType.VarString).Value = TB_Server.Text
                cmd.Parameters.Add("@status", MySqlDbType.VarString).Value = TB_Status.Text
                cn.Open()
                cmd.ExecuteNonQuery()
                cn.Close()
            End Using
        End Using
    End Sub
  • 0
    Работало отлично! Спасибо за тонну За исключением @statue в первой линии;). Спасибо еще раз за помощь.
  • 0
    @thunfischbaum Ой! Извините, это исправлено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню