a,b,c是字符串,都在使用块内。我在标题中得到错误:参数?_2没有默认值。有谁知道这意味着什么?我已经为所处理的变量添加了默认值,但仍然没有变化。我错过了什么吗?
dbc.open()
Dim trans As OleDbTransaction = dbc.BeginTransaction(IsolationLevel.ReadCommitted)
Dim cmd As new OleDbCommand("INSERT INTO " & a & " (x, y) VALUES (?, ?)", dbc, trans)
cmd.parameters.add(New OleDbParameter("x", b)
cmd.parameters.add(New OleDbParameter("y", c)
cmd.ExecuteNonQuery()
trans.commit()
dbc.close()
更新:我尝试使用提到的语法:
cmd.parameters.AddWithValue("y", c)
和
cmd.parameters.AddWithValue("y", if(c, DBNull.Value))
到目前为止还没有任何效果。添加的if(c,DBNull.Value)似乎只是将值设置为null。我知道我输入的内容不是空的。
更新
?订单没有按其出现的顺序排序。我在查询中有一个WHERE语句,我在开始时认为OleDbParameter字符串实际上是指一些合理的东西,比如指向对象。为什么
OleDbParameter(" x",b)
如果x实际上没有引用b而且订单是否重要?无论如何,谢谢大家提供出色而快速的回复。