Как вставить данные в базу данных MySQL на странице asp.net?

0

Я пытаюсь использовать MySQL 5 и asp.net 4

Я преуспеваю с привязкой и отображением данных из базы данных MySQL, но проблема заключается в командах DML!

Пожалуйста, взгляните на мой код

Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MyConnection As String = "server=localhost;User Id=root;password=123;database=cms"

        Dim Connection As New MySqlConnection(MyConnection)

        Connection.Open()

        Dim Sql As String = "INSERT INTO [CMS.tbimages] ( Title,Description) VALUES (parm2,parm3);"
        Dim cmd As New MySqlCommand(Sql, Connection)

        cmd.Parameters.Add(New MySqlParameter("parm2", "hajjaj"))
        cmd.Parameters.Add(New MySqlParameter("parm3", "hajjaj"))

        cmd.ExecuteNonQuery()
        cmd.Connection.Close()
    End Sub
End Class

что я сделал, это простая страница для тестирования команды insert, я добавил кнопку, когда я нажимаю на нее, она должна делать команду вставки!!

но когда я нажимаю на него, это дает мне ошибку:

# 42000 У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашему серверу MySQL версии для правильного синтаксиса для использования рядом с [[CMS.tbimages] ( Название, описание) ЦЕННОСТИ (parm2, parm3) 'в строке 1

not: я попробовал много других способов изменить инструкцию insert:

"INSERT INTO [tbimages] ([Title], [Description]) VALUES (?,?)"
"INSERT INTO [tbimages] ([Название], [Описание])
 ЦЕННОСТИ (? Название,? Описание) "
INSERT INTO [tbimages] ([Title], [Description]) VALUES (Название, Описание)

  • 0
    Обязательно используйте функции над текстом сообщения и окно предварительного просмотра под ним, чтобы убедиться, что ваше сообщение будет отображаться так, как вы этого хотите. :)
Теги:
sql-server

2 ответа

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

Попробуйте следующее:

Dim Sql As String = "INSERT INTO CMS.tbimages ( Title,Description) VALUES (?parm2,?parm3);"
Dim cmd As New MySqlCommand(Sql, Connection)

cmd.Parameters.Add(New MySqlParameter("?parm2", "hajjaj"))
cmd.Parameters.Add(New MySqlParameter("?parm3", "hajjaj"))

Кроме того, этот может помочь.

  • 0
    ооо, вот и все. большое спасибо. моя проблема решена
  • 0
    @HAJJAJ: Нет проблем! Не забудьте пометить как ответ. :)
1

MySQL не использует скобки вокруг идентификаторов, он использует обратные ссылки:

Dim Sql As String = "INSERT INTO `CMS.tbimages` (Title,Description) VALUES (?,?)"

Если имена таблиц не вызывают конфликтов, вам не нужно заключать их в обратные ссылки:

Dim Sql As String = "INSERT INTO CMS.tbimages (Title,Description) VALUES (?,?)"

Я не уверен, как ваш драйвер базы данных обрабатывает параметры, но я думаю, что они должны быть неназванными.

  • 0
    да ты прав !! но для моего приложения я использовал это, и он работает: Dim Sql As String = "INSERT INTO CMS.tbimages (Title, Description) VALUES (? parm2,? parm3);" Спасибо за помощь :)

Ещё вопросы

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