2017-02-28 98 views
0

我在使用vb.net在ms訪問數據庫中插入數據時遇到問題。使用VB.NET在msaccess中插入數據

下面是我的代碼,我得到一個錯誤「查詢值的數量與字段不同」。是的,我嘗試了使用不同的代碼並儘可能多地學習,但這是迄今爲止我得到的最好的代碼。任何人都可以幫助我?

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 
    Try 

     If con.State = ConnectionState.Closed Then 
      con.ConnectionString = con_str 
      con.Open() 
     End If 
     oleDA.InsertCommand = New OleDb.OleDbCommand 
     oleDA.InsertCommand.Connection = con 
     oleDA.InsertCommand.CommandText = "INSERT INTO tblPlaylist VALUES (@Song,@Artist,@Album)" 

     oleDA.InsertCommand.Parameters.Add(New OleDb.OleDbParameter("@Song", txtboxSong.Text)) 
     oleDA.InsertCommand.Parameters.Add(New OleDb.OleDbParameter("@Artist", txtboxArtist.Text)) 
     oleDA.InsertCommand.Parameters.Add(New OleDb.OleDbParameter("@Album", txtboxAlbum.Text)) 
     oleDA.InsertCommand.ExecuteNonQuery() 

    Catch ex As Exception 
     MessageBox.Show("Error:" & ex.Message) 
    End Try 
End Sub 
+0

貴表'tblPlaylist'有哪些領域?似乎歌曲,藝術家和相冊不是唯一的.. –

+0

我有一個ID字段,但它被設置爲主鍵。當我嘗試將它放在我的調用字段上時,它會提示錯誤,該值與ID字段的值不是同一類型。 – Silverbells

+0

當您省略INSERT子句中的列時,您*必須*以正確的表格順序提供*所有*值。你如何填寫ID字段?這是一個自動增量? –

回答

1

您需要同時定義你插入的列和你插入到他們的價值觀。改變這一行:

oleDA.InsertCommand.CommandText = "INSERT INTO tblPlaylist VALUES (@Song,@Artist,@Album)" 

對此

oleDA.InsertCommand.CommandText = "INSERT INTO tblPlaylist (Song, Artist, Album) VALUES (@Song,@Artist,@Album)" 
+0

好吧,我會試試這個。謝謝回覆!稍後會回覆你。 – Silverbells