2011-01-23 66 views
0

我想使用MySQL 5和asp.net 4如何在asp.net頁面插入數據到MySQL數據庫?

我成功鏈接並顯示來自MySQL DB的數據,但問題在於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( 標題,描述)VALUES (parm2,parm3)' 在1號線

不正確的語法:我試過很多其他方法來改變插入語句:

「(?)INSERT INTO [tbimages]([標題],[說明])VALUES」
「INSERT INTO [tbimages]([標題] ,[說明])
VALUES(?標題,?說明)「
INSERT INTO [tbimages]([名稱],[描述])VALUES(標題,描述)

+0

請務必使用上方的帖子文本及其下方的預覽窗口中的功能,以確保您的帖子將以您想要的方式顯示。 :) – 2011-01-23 07:49:59

回答

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")) 

此外,this教程可能會有所幫助。

+0

oooh雅,就是這樣。 非常感謝。 我的問題解決了 – HAJJAJ 2011-01-23 07:51:54

+0

@HAJJAJ:沒問題!不要忘記標記爲答案。 :) – 2011-01-23 08:00:39

1

MySQL不使用括號標識符,它使用反引號:

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

如果表名稱不會引起任何衝突,你不需要把它們放在反引號或者:

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

我不知道你的數據庫驅動程序如何處理參數,但我認爲它們應該是未命名的。

相關問題