Vb.net 使用参数更新oledb数据表失败

Vb.net 使用参数更新oledb数据表失败,vb.net,ado.net,oledb,oledbcommand,oledbdataadapter,Vb.net,Ado.net,Oledb,Oledbcommand,Oledbdataadapter,我正在尝试为oledb数据适配器编写更新命令。我犯过各种各样的错误。我想我的绊脚石是那些愚蠢的域名,我对此无能为力。 也许有人能看出我的错误 数据库是access 该表有许多列,但我只想更新一列。 [Transaction Seq]列是一个自动编号 要更新的列[代码(IAO)]为文本-255长 错误:参数[@Code(IAO)]没有默认值 我的代码: oDAtblBound.SelectCommand = New OleDb.OleDbCommand(strSql, oCon) Dim buil

我正在尝试为oledb数据适配器编写更新命令。我犯过各种各样的错误。我想我的绊脚石是那些愚蠢的域名,我对此无能为力。 也许有人能看出我的错误

数据库是access 该表有许多列,但我只想更新一列。 [Transaction Seq]列是一个自动编号 要更新的列[代码(IAO)]为文本-255长

错误:参数[@Code(IAO)]没有默认值

我的代码:

oDAtblBound.SelectCommand = New OleDb.OleDbCommand(strSql, oCon)
Dim builder As OleDb.OleDbCommandBuilder = New OleDbCommandBuilder(oDAtblBound)
builder.QuotePrefix = "["
builder.QuoteSuffix = "]"
oDAtblBound.MissingSchemaAction = MissingSchemaAction.AddWithKey
oDAtblBound.Fill(oTables, "tblBound")

cmd = New OleDbCommand("UPDATE tblBound SET [Code (IAO)] = [@Code (IAO)] WHERE [Transaction Seq] = [@Transaction Seq]", oCon)

cmd.Parameters.Add("[Code (IAO)]", OleDbType.Char, 255, "[Code (IAO)]")
parameter = cmd.Parameters.Add("[Transaction Seq]", OleDbType.Char, 255, "[Transaction Seq]")
parameter.SourceVersion = DataRowVersion.Original
oDAtblBound.UpdateCommand = cmd

将代码更改为

cmd = New OleDbCommand("UPDATE tblBound SET [Code (IAO)] = @Code_IOA WHERE [Transaction Seq] = @Transaction_Seq", oCon)

cmd.Parameters.Add("Code_IAO", OleDbType.Char, 255, "Code (IAO)")
parameter = cmd.Parameters.Add("Transaction_Seq", OleDbType.Char, 255, "Transaction Seq")
parameter.SourceVersion = DataRowVersion.Original
oDAtblBound.UpdateCommand = cmd

您对参数的使用混乱不堪。您需要将第一个的.Value设置为要更新的值。如果[Transaction Seq]是一个自动编号,为什么要将其定义为字符?那一个也没有
.Value
。我看不出你为什么想用带有空格的列名和参数名来让你的生活变得艰难。史蒂夫,这让我们两个都很难相处!