我正在嘗試從填充到表單中的數據更新表。
這些變量從表單拉這樣的:更新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