Accessにあるテーブルに行を挿入しようとしています。テーブルの名前はSiteで、SiteId(AutoNumber)とSiteName(Text)の2つの列があります。テストの目的で、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)
クエリ値の数がフィールド数などと一致しないことがわかります。