none
VB的相關語法 RRS feed

  • 問題

  • 各位大大好!!!
    原本程式碼是判斷displayname為'A'開頭的  例如'A00', 'AA0'
    但現在想改成除了A開頭以外 還可以'Q'開頭,以及'3'開頭的 例如'Q1A','3H0'
    請問小弟應該怎麼改...
    以下是code
    ========================================================
    Dim dr As DataRow
                For Each dr In resXmlDataDoc.DataSet.Tables("prop").Rows
                    If dr("displayname").ToString Like "A??" Then
                        cbxGroup.Items.Add(dr("displayname"))
                    End If
    ========================================================

    有請大大幫忙 感激不盡!!!
    2010年3月2日 上午 03:43

解答

所有回覆

  • Hi!

    1. 使用 String.Substring 方法 (Int32, Int32) 或 Mid 函式Left 函式 取得 dr("displayname").ToString 字串的第一個字元
    2. 判斷第一個字元是否為 A 或 Q 或 3


    小歐ou是個菜鳥工程師,回答不好請不要標我的回覆為解答,有網友熱心回覆也請發問者儘快回應,謝謝
    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 SHOW3103 2010年3月2日 上午 04:50
    2010年3月2日 上午 03:50
    版主
  • 你如果是DataTable, 與其用迴圈一個個Row去找, 不如用 DataTable.Select會來得簡潔一些
    請參閱MSDN文件庫
    [DataTable. Select 方法 ]
    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    • 已標示為解答 SHOW3103 2010年3月2日 上午 04:50
    • 已取消標示為解答 SHOW3103 2010年3月2日 上午 04:53
    2010年3月2日 上午 04:35
    版主
  • Hi,

    您的程式已經可以判斷A開頭的
    要額外多判斷Q與3開頭的不就是用Or或是OrElse嗎?
    你的程式多加幾個判斷就可以了

    除了小歐大與Bill叔的方法外
    你也可以參考使用正規表示式
    匹配的Pattern為^[AQ3]
    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年3月2日 上午 04:43
  • 謝謝大大們的解答 非常感激!

    2010年3月2日 上午 04:49
  • dr 是 DataRow ... 也就是從 DataTable 抽出來的... 那幹嘛不直接用 DataTable.Select 處理?


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月2日 下午 03:12