如何使用 vb.net 连接访问单元格

How to concat to access cell using vb.net

我想使用 vb.net 文本框中的文本连接(添加到已存在的内容)到访问单元格。我尝试使用 UPDATE 但出现语法错误。这是我到目前为止尝试过的

Dim ds As New DataSet()
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\equip_full.mdb;Jet OLEDB:Database Password=matt"

Dim db As String = "Update INTO Equipment set TypeItem = ISNULL(TypeItem, '') & @EquipmentItem  WHERE EquipmentCat = @category"

 Using cn As New OleDbConnection(ConnectionString)
     Using cmd = New OleDbCommand(db, cn)
     cn.Open()
     cmd.Parameters.Add("@EquipmentItem", OleDbType.VarWChar).Value = Form4.TextBox1.Text & ";"
     cmd.Parameters.Add("@category", OleDbType.VarWChar).Value = Me.item_text.Text
          Using reader = cmd.ExecuteReader()    
          'some code...
          End Using
      End Using
 End Using

更新查询的正确语法是

UPDATE tablename SET field=value, field1=value1,.... WHERE condition

然后您需要删除 INSERT 查询中使用的 INTO

Dim db As String = "Update Equipment set TypeItem = .... " & 
                   "WHERE EquipmentCat = @category"

修复第一个语法错误后,ISNull 又出现了另一个问题 ISNull 是一个布尔表达式 return 真或假。
如果您想用空字符串替换空值,您需要 IIF 函数的帮助,您可以使用该函数来测试 ISNull 的 return 值并准备用于连接 @Equipment 参数的基本字符串。

像这样

Dim db As String = "Update Equipment " & _ 
"set TypeItem = IIF(ISNULL(TypeItem),'', TypeItem) & @EquipmentItem  " & _
                   "WHERE EquipmentCat = @category"