ASP.Net字符串拆分不起作用

时间:2010-10-25 19:01:45

标签: asp.net vb.net session split

这是我的代码

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

似乎无法让它发挥作用

有什么想法吗?

由于

杰米

2 个答案:

答案 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的连接方式并使用&字符来完成它。