2015-12-02 60 views
-1

例如填充數據,我從循環111 222 333 送3點的數據,然後我想返回像值:得到循環vb.net

'111', '222', '333'

那麼,如何結合和完成我的循環與substring (')(,)

因爲我已經執行了條件爲where in ('111','222','333')的查詢。

這是我在vb.net代碼:

For Each grv As GridViewRow In gridDisplayGRN.Rows 
    Dim chk As CheckBox = CType(grv.FindControl("ChkSelect"), CheckBox) 
    If chk.Checked = True Then 
     Dim p As New PengirimanDetail 
     p.KodePenerimaan = grv.Cells(2).Text.Trim() 
     Dim parm = p.KodePenerimaan => first looping get 111 and next looping 222 333 
     Dim data = "'" + parm + "'" => '111' 
     Dim return = '111','222','333' ??? 
    End If 
Next 

請給我真正的代碼,謝謝...

+0

什麼是原始數據?你可以使用Rawdata.Split(「」)嗎? – Fabio

+0

其次 - sql查詢中的硬編碼參數 - 是一種不好的做法 - 即使是數字也是如此。如果這些數字太多,使用SQL參數或使用表類型的Sql參數 – Fabio

+0

真實的代碼? '昏暗的回報='?!您已經是SO的成員超過1年了!我無語。 – varocarbas

回答

0

有幾種方法來解決這個問題,我會告訴你一個一個的。

  1. 你必須聲明一個變量來存儲結果字符串以外的循環。否則,你會在每一步中覆蓋它,這裏列出。
  2. 在循環內部,您收集在1.中創建的變量中的所有KodePenerimaan字符串,這裏是通過String.Concat。
  3. 循環結束後,將所有收集的字符串轉換爲所需的格式,此處爲String.Join。

    Dim parms as new List(Of String) 'collection for KodePenerimaans 
    For Each grv As GridViewRow In gridDisplayGRN.Rows 
        Dim chk As CheckBox = CType(grv.FindControl("ChkSelect"), CheckBox) 
        If chk.Checked = True Then 
         Dim p As New PengirimanDetail 
         p.KodePenerimaan = grv.Cells(2).Text.Trim() 
         parms.Add(String.Concat("'", p.KodePenerimaan, "'")) 'Add current KodePenerimaan to list 
        End If 
    Next 
    Dim result as String = String.Empty 
    If parms.Count > 0 Then 
        result = String.Join(",", parms) 'Join to "'111','222','333'" 
    End If 
    return result 
    
+0

它的工作原理,感謝兄弟... !!! :) – Bee