这是我的代码
Dim RefsUpdate As String() = Session("Refs").Split("-"C)
Dim PaymentsPassedUpdate As String() = Session("PaymentsPassed").Split("-"C)
Dim x as Integer
For x = 1 to RefsUpdate.Length - 1
Dim LogData2 As sterm.markdata = New sterm.markdata()
Dim queryUpdatePaymentFlags as String = ("UPDATE OPENQUERY (db,'SELECT * FROM table WHERE ref = ''"+ RefsUpdate(x) +"'' AND bookno = ''"+ Session("number") +"'' ') SET alpaid = '"+PaymentsPassedUpdate(x) +"', paidfl = 'Y', amountdue = '0' ")
Dim drSetUpdatePaymentFlags As DataSet = Data.Blah(queryUpdatePaymentFlags)
Next
我没有得到任何错误,但它似乎没有按原样运作
我正在传递一个像AA123456 - BB123456 - CC123456 -
之类的预订参与此类付款50000 - 10000 - 30000 -
我基本上需要使用引用AA123456
更新数据库,因此alpaid
字段中包含50000
。
似乎无法让它发挥作用
有什么想法吗?
由于
杰米
答案 0 :(得分:1)
我不确定什么不起作用,但我可以告诉你,你不会处理数组中的最后一个条目。你将从1变为长度 - 1,这是最后一个索引的一个短。因此,除非您的输入字符串以“ - ”结尾,否则您将错过最后一个。
答案 1 :(得分:1)
Mark提到的索引问题只是一个项目,但会导致问题。我会说你的问题源于你没有修剪琴弦。您的数据库可能没有前导或尾随数据的空格,因此您需要执行以下操作:
Dim refsUpdateString as string = RefsUpdate(x).Trim()
Dim paymentsPassedUpdateString as string = PaymentsPassedUpdate(x).Trim()
...
Dim queryUpdatePaymentFlags as String = ("UPDATE OPENQUERY (db,'SELECT * FROM table WHERE ref = ''" & refsUpdateString & "'' AND bookno = ''" & Session("number") & "'' ') SET alpaid = '" & paymentsPassedUpdateString & "', paidfl = 'Y', amountdue = '0' ")
另外,我建议保持VB的连接方式并使用&
字符来完成它。