gpt4 book ai didi

sql - 使用 vb.net 将 MS Access 行插入数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:57 24 4
gpt4 key购买 nike

所以我正在尝试向数据库中添加字段。它是.mdb 数据库,microsoft access。

表的名称是联系人。

Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source= C:\Users\Owner\Desktop\Contacts.mdb"

con.ConnectionString = dbProvider & dbSource

con.Open()

sql = "INSERT INTO Contacts (FName, LName, Age, Address Line 1, Address Line 2, City, State, Zip, Home Phone, Work Phone, Email, Sex) VALUES (a, b, c,d,e,f,g,h,i,j,k)"
da = New OleDb.OleDbDataAdapter(Sql, con)
da.Fill(ds, "Contacts")

我的错误是 INSERT INTO 语句中的语法错误。无论如何,这是没有意义的。我做错了什么?

编辑*我按照建议通过在 certian 字段周围添加 [] 解决了我的原始问题,谢谢。现在我越来越...

没有为一个或多个必需参数提供值。

数据库有一个自动递增的主 ID 字段,这会改变什么吗?

最佳答案

正如其他答案已经解释的那样,您需要在包含空格的列名称周围使用方括号,而且您还需要为字段添加一个值,否则您将无法执行命令。

我会尝试展示一个完整的例子

Dim dbProvider  = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
Dim dbSource = "Data Source= C:\Users\Owner\Desktop\Contacts.mdb"

Dim sql = "INSERT INTO Contacts (FName, LName, Age, " & _
"[Address Line 1], [Address Line 2], City, State, Zip, " & _
"[Home Phone], [Work Phone], Email, Sex) " & _
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"

Using con = New OleDb.OleDbConnection(dbProvider & dbSource)
Using cmd = new OleDb.OleDbCommand(sql, con)
con.Open()
cmd.Parameters.AddWithValue("@p1", "Value For FName")
cmd.Parameters.AddWithValue("@p2", "Value For LName")
cmd.Parameters.AddWithValue("@p3", Convert.ToInt32("Value For Age"))
.... and so on for the other parameters .....
cmd.ExecuteNonQuery()
End Using
End Using

在此示例中,我为参数 (?) 插入了 12 个占位符,然后添加了 12 个必需参数中的前 3 个。请注意,对于 OleDb,参数集合仍然需要添加具有名称 (@pX) 的参数,但是在执行查询时,参数值是按照占位符的相同顺序选取的。

我还使用了 Using 语句来关闭和处理连接和命令等一次性对象。

最后,插入查询通常使用 OleDbCommand 中的 ExecuteNonQuery 执行,并且在没有执行 SELECT 查询时无需使用 OleDbAdapter 和调用 Fill 来加载数据集

关于sql - 使用 vb.net 将 MS Access 行插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com