Я пытаюсь использовать 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 (Название, Описание)
Попробуйте следующее:
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"))
Кроме того, этот может помочь.
MySQL не использует скобки вокруг идентификаторов, он использует обратные ссылки:
Dim Sql As String = "INSERT INTO `CMS.tbimages` (Title,Description) VALUES (?,?)"
Если имена таблиц не вызывают конфликтов, вам не нужно заключать их в обратные ссылки:
Dim Sql As String = "INSERT INTO CMS.tbimages (Title,Description) VALUES (?,?)"
Я не уверен, как ваш драйвер базы данных обрабатывает параметры, но я думаю, что они должны быть неназванными.