我正在尝试从填充到表单中的数据更新表。
这些变量从表单拉这样的:更新SQL,没有错误,没有更新
_JEBatchDate = IIf(Me.textJEBatchDate.Text.Trim.Length > 0, Me.textJEBatchDate.Text.Trim, "")
更新SQL看起来像这样...
UPDATE [MAIN] SET [CheckNumber] = @checknumber, [CheckDate] = @checkdate, [CheckCashDate] = @checkcashdate, [CheckAmount] = @checkamount, [PayeeNumber] = @payeenumber, [AccountNumber] = @accountnumber, [Bank] = @bank, [ToTheOrderOf] = @totheorderof, [CheckType] = @checktype, [DatePaperworkSentToPayee] = @datepaperworksenttopayee, [DatePaperworkSentToBank] = @datepaperworksenttobank, [IncompleteReason] = @incompletereason, [RejectReason] = @rejectreason, [CaseNumber] = @casenumber, [BankStatus] = @bankstatus, [CorrWithPayee] = @corrwithpayee, [Comments] = @comments, [BankCredit] = @bankcredit, [Refund] = @refund, [DateFundsRecdFromBank] = @datefundsrecdfrombank, [DateRefundRecd] = @daterefunded, [DateTargetSent] = @datetargetsent, [NumberOfTargets] = @numberoftargets, [DateCreditPostedToCLI] = @datecreditpostedtocli, [DateSentToSGForRepayment] = @datesenttosgforrepayment, [DateClaimWasRepaid] = @dateclaimwasrepaid, [NewCheckNumber] = @newchecknumber, [NewCheckAmount] = @newcheckamount, [ARCHIVED] = @archived, [JEBatchName] = @jebatchname, [JEBatchDate] = @jebatchdate WHERE [ID] = @ID;
所有值以这种方式构建
strValues = strValues & "[JEBatchDate] = @jebatchdate "
在一个Try ... catch中,参数按这种方式构造:
Try
Using updateCmd As New OleDb.OleDbCommand(UpdateSQL, HMOConnection)
updateCmd.Parameters.AddWithValue("@ID", Me.labelID.Text)
updateCmd.Parameters.AddWithValue("@checknumber", _checkNumber)
updateCmd.Parameters.AddWithValue("@checkdate", _checkDate)
我使用updateCmd.ExecuteNonQuery()
来执行查询。
该代码通过Try ... Catch运行而没有错误,但没有更新记录。我已经仔细检查了所有的名字,拼写,连接,但是仍然没有更新。任何意见或建议表示赞赏!
编辑
如果我提出从顶部到底部,我得到一个数据类型不匹配错误这一行:
updateCmd.Parameters.AddWithValue("@ID", Me.labelID.Text)
你如何验证更新不起作用?你使用了| DataDirectory |吗?连接字符串中的快捷方式? – Steve
我可以直接进入数据库并检查。 – user3795810
您是否已经对数据库进行了剖析,以查看该语句是否触及您期望的数据库,如果有,该脚本看起来应该如何?此外,您是否尝试过直接在SSMS中运行配置文件查询以确认该查询实际上更新了一行? – Kritner