2017-02-28 96 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