字串的切割和提取問題

來源:互聯網
上載者:User
        前一陣子,我的項目中需要用到把資料庫中的一個欄位根據","符號分割成多列顯示在GridView控制項中,折騰了半天再搞好。呵呵,看來是本人水平有限,還需要多多努力 ;)

 protected void bind_usb()  //綁定USB列表到Gridview
    {
        DataTable m_usb_Table = new DataTable();
        m_usb_Table.Columns.Add(new DataColumn("usbinfo", typeof(System.String)));
        m_usb_Table.Columns.Add(new DataColumn("usbidinfo", typeof(System.String)));
        m_usb_Table.Columns.Add(new DataColumn("usbflag", typeof(System.String)));

        ArrayList usbinfo_List = new ArrayList();
        ArrayList usbidinfo_List = new ArrayList();
        ArrayList usbflag_List = new ArrayList();

        string usbinfo_str = MyTable.Rows[0]["usbinfo"].ToString();          //從資料來源 MyTable 中取得字串
        if (usbinfo_str == "" || usbinfo_str == null) return;
        string usbidinfo_str = MyTable.Rows[0]["usbidinfo"].ToString();
        string usbflag_str = MyTable.Rows[0]["usbflag"].ToString();

        string[] usbinfo_Array = usbinfo_str.Split(',');
        foreach (string usbinfo_Sub in usbinfo_Array)
        {
            usbinfo_List.Add(usbinfo_Sub);
        }
        string[] usbidinfo_Array = usbidinfo_str.Split(',');
        foreach (string usbidinfo_Sub in usbidinfo_Array)
        {
            usbidinfo_List.Add(usbidinfo_Sub);
        }
        string[] usbflag_Array = usbflag_str.Split(',');
        foreach (string usbflag_Sub in usbflag_Array)
        {
            usbflag_List.Add(usbflag_Sub);
        }
        DataRow MyRow;
        for (int i = 0; i < usbinfo_List.Count; i++)
        {
            MyRow = m_usb_Table.NewRow();     //將 ArrayList 的值賦給 m_cpu_Table.NewRow行
            MyRow["usbinfo"] = usbinfo_List[i].ToString();
            MyRow["usbidinfo"] = usbidinfo_List[i].ToString();
            MyRow["usbflag"] = usbflag_List[i].ToString();
            m_usb_Table.Rows.Add(MyRow);
        }
        GridView usbGrid = this.Hard_DetailsView.FindControl("usbGrid") as GridView;
        //usbGrid.Visible = false;
        usbGrid.DataSource = m_usb_Table;
        usbGrid.DataBind();
    }

顯示效果:

(注釋:部分顯示不是亂碼,是日語)

        事隔多日,今天偶然看見Teracy_Joy 的blog裡面也有相關代碼,真是相見恨晚。也罷,自己編寫的能漲能力(但沒有漲工資,TMD小日本)。
引用如下:
功能:在一個文字框中輸入多個資料,類似圖中資料:

要在伺服器端寫代碼將這些字串分開後寫到一個list裡面去,然後在將這個list拼字成SQL語句,弄了好久,終於有了結果,處理起來還真的有點麻煩,要是裡面的資料都是整型的話可能好處理一點,現在把每一步的方法帖出來,以後好參考參考:

點擊查詢時要做的事
 1        protected void btnSel_Click(object sender, EventArgs e)
 2        {
 3            string strCode = txtManyCode.Text.Trim();
 4
 5            string[] ArrayStr = strCode.Split(',');
 6
 7            List<string> listStr = new List<string>();
 8         
 9            foreach (string str in ArrayStr)
10            {
11                listStr.Add(str);
12            }
13            DataTable dt = AcerPromotionManager.getWillDeletePromotionCode(listStr);
14
15            dgAcer.DataSource = dt;
16            dgAcer.DataBind();
17
18        }

 

將那個listStr傳到這個裡面來構建一個'方法法','fdas','fdsafd','fdsa'
 1 public static string GetStringFromStringList(List<string> list)
 2        {
 3            string strList = string.Empty;
 4            foreach (string str in list)
 5            {
 6                strList += (strList.Length == 0 ? "" : "','") + str.ToString();
 7
 8            }
 9            return "'" + strList + "'";
10
11        }

這樣就可以了,把要得到的字串就可以提取出來了,另外還一個就是要是資料為int型的話只要調用:

List 類型的方法
 1    public static string GetStringFromIntList(List<int> list)
 2        {
 3            string strList = string.Empty;
 4
 5            foreach (int id in list)
 6            {
 7                strList += (strList.Length == 0 ? "" : ",") + id.ToString();
 8            }
 9
10            return strList;
11        }

調用方法一樣的,都比較簡單的。

把輸入的資料中包含有單雙引號的字元去掉(以及別的特殊字元)的方法:
public static string GetFormatNameForImgAlt(string str)
{
return str.Replace("'", "&rsquo;").Replace("\"", "&quot;"));
}  

發現都是湖南人,組合在一起讓大家和自己都一起相互學習。多多指教!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.