代码之家  ›  专栏  ›  技术社区  ›  Jamie Taylor

ASP.NET字符串拆分不工作

  •  0
  • Jamie Taylor  · 技术社区  · 14 年前

    这是我的密码

    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 回复  |  直到 14 年前
        1
  •  1
  •   Mark Avenius    14 年前

    我不确定什么不起作用,但我可以告诉您,您不会处理数组中的最后一个条目。从1到length-1,这是最后一个索引的简称。因此,除非输入字符串以“-”结尾,否则将错过最后一个字符串。

        2
  •  1
  •   Joel Etherton    14 年前

    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的连接方式,并使用 & 做这件事的性格。