2013-04-12 2 views
1

Я был этой проблемой в течение недели и искал каждый существующий форум для ответа, может быть, на этот раз, когда я отправлю свою собственную проблему.Ошибка синтаксиса в инструкции INSERT INTO. в VB.net 2010

Моя проблема заключалась в сохранении данных в базе данных. У меня есть datagrid, который был привязан к нему, но ничего не отображается. Я использую базу данных доступа .mdb. имя таблицы mdb было tblinformation.

Похоже, что моя проблема была в инструкции INSERT INTO, потому что появился msgbox, который каждый раз я пытаюсь сохранить данные из текстового поля. и, наконец, я новичок в vb.net> .. <

Кстати, вот мой код:


Imports System.Data.OleDb 

Public Class frmbookinfo 
Dim cnn As New OleDb.OleDbConnection 

Private Sub cmdsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsave.Click 
    Try 
     cnn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=D:\AmosBooks_System\AmosBooks_System\database.mdb") 
     Dim command As String 
     command = "INSERT INTO tblinformation(title, author, isbn, category, edition, pages, language, yearofpublication, bcode, price) VALUES (@title, @author, @isbn, @category, @edition, @pages, @language, @yearofpublication, @bcode, @price)" 
     cnn.Open() 
     Dim cmd As OleDbCommand 
     cmd = New OleDbCommand(command, cnn) 
     cmd.Parameters.AddWithValue("@title", txttitle.Text) 
     cmd.Parameters.AddWithValue("@author", txtauthor.Text) 
     cmd.Parameters.AddWithValue("@isbn", txtisbn.Text) 
     cmd.Parameters.AddWithValue("@category", txtcategory.Text) 
     cmd.Parameters.AddWithValue("@edition", txtedition.Text) 
     cmd.Parameters.AddWithValue("@pages", txtpages.Text) 
     cmd.Parameters.AddWithValue("@language", cmblanguage.Text) 
     cmd.Parameters.AddWithValue("@yearofpublication", dtyearpub.Text) 
     cmd.Parameters.AddWithValue("@bcode", txtbcode.Text) 
     cmd.Parameters.AddWithValue("@price", txtprice.Text) 


     cmd.ExecuteNonQuery() 
    Catch exceptionObject As Exception 
     MessageBox.Show(exceptionObject.Message) 
    Finally 
     cnn.Close() 
    End Try 
End Sub 
+0

Можете ли вы дать более подробную информацию относительно того, что исключение вы получаете и когда? –

+0

вы забыли пространство, я думаю ... – pordi

+0

+1 для включения кода, -1 для не включая сообщение об ошибке, которое вы получаете. ;-) – Heinzi

ответ

3

Ошибка синтаксиса вызывается словом языка в именах полей.
Это слово зарезервировано в JET-SQL и, таким образом, должны быть заключены в квадратные скобки

command = "INSERT INTO tblinformation(title, author, isbn, category, edition, pages, " + 
      "[Language], yearofpublication, bcode, price) VALUES " + 
      "(@title, @author, @isbn, @category, @edition, @pages, " + 
      "@language, @yearofpublication, @bcode, @price)" 
Смежные вопросы