我正在尝试在 Access 中的表中插入一行。该表名为 Site,它有两列,SiteId(自动编号)和 SiteName(文本)。出于测试目的,我从 Excel 工作表中获取了一个值,并尝试使用以下代码将该值插入到 SiteName 列中......
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim App As New Excel.Application
Dim WB As Excel.Workbook = App.Workbooks.Open("C:\MyFile.xlsx")
Dim WS As Excel.Worksheet = DirectCast(WB.Worksheets(2), Excel.Worksheet)
App.Visible = False
Dim Range As Excel.Range
Range = WS.Range("A8")
Dim cnn As New OleDbConnection(My.Settings.cnn)
Dim cmd As New OleDbCommand("INSERT INTO Site(SiteName) VALUES(@SiteName)", cnn)
cmd.Parameters.Add("@SiteName", OleDbType.Char).Value = Range.Value.ToString
Try
Using cmd.Connection
cmd.Connection.Open()
cmd.ExecuteNonQuery()
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
即使我删除了 cmd.Parameters 行并且只输入了一个像 Values('Test') 这样的直接值,它也不会插入。执行命令时,代码中没有错误。为什么价值不起作用?我已经验证了从 Excel 工作表返回的数据,并且工作正常。我只是无法将其插入 Access 中的表中。连接也可以正常工作,因为如果我使用此插入...
Dim cmd As New OleDbCommand("INSERT INTO Site VALUES(@SiteName)", cnn)
它会告诉我查询值的数量与字段计数或类似的东西不匹配。