none
如何實現 textbox搜尋datagridview?  RRS feed

  • 問題

  • msdn上寫要用DataRow的方式有點搞不懂

    我的想法是把 datagridview1

    輸入的值比對完放到datatable

    再輸出到新的datagridview2 or textbox


                                                              

                //宣告textbox
                string searchid = textid.Text;
                //選取機種表
                string select = "SELSECT * FROM 機種表 WHERE 機種 = '" + searchid + "'";

                DataRow borrow = new DataRow(); 

    接下來就卡關了= =







    • 已編輯 XX阿忠XX 2014年10月8日 上午 09:14
    2014年10月8日 上午 09:10

解答

  • 第一件很重要的事:

    string select = "SELSECT * FROM 機種表 WHERE 機種 = '" + searchid + "'";

    如果你這行是從資料庫撈資料, 這個寫法會有 SQL 注入攻擊的疑慮, 請用參數式查詢語法.

    參考

    ADO.NET

    第二件事: 如果你的資料本來就已經從資料庫讀取到 DataTable 中了, 你可以使用 DataTable 的 Select 方法來直接從 DataTable 取資料, 而不需要再從資料庫來一遍

    參考
    DataTable.Select 方法 (String)

    DataTable.Select 方法 (String, String)




    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 XX阿忠XX 2014年10月9日 上午 12:35
    2014年10月8日 上午 09:38
    版主

所有回覆

  • 第一件很重要的事:

    string select = "SELSECT * FROM 機種表 WHERE 機種 = '" + searchid + "'";

    如果你這行是從資料庫撈資料, 這個寫法會有 SQL 注入攻擊的疑慮, 請用參數式查詢語法.

    參考

    ADO.NET

    第二件事: 如果你的資料本來就已經從資料庫讀取到 DataTable 中了, 你可以使用 DataTable 的 Select 方法來直接從 DataTable 取資料, 而不需要再從資料庫來一遍

    參考
    DataTable.Select 方法 (String)

    DataTable.Select 方法 (String, String)




    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 XX阿忠XX 2014年10月9日 上午 12:35
    2014年10月8日 上午 09:38
    版主
  • 我直接用內建的匯入資料表

    然後希望用textbox來篩選

    請問要如何把等於出來的結果顯示

     private void btnsearch_Click(object sender, EventArgs e)
            {
               
                
               
                    for (int i = 1; i <= dataGridView1.RowCount - 1;i++ )
                    {
                        if (textid.Text == dataGridView1.Rows[i].Cells[0].Value.ToString())
                        {
                           for(){
                            dataGridView1.Rows.Add
                            
                            }       
                      }    
                    }                          
                  }            

    2014年10月9日 上午 06:21
  • 您好,
    可以把資料來源經過您的篩選條件(textid.Text)篩選從,再Bind給dataGridView。
    other info:

    C# DataGridView Tutorial


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2014年10月9日 上午 06:55
  •  

    我想讓篩選完的結果放回原datagridview中

    所以把他清空再放

    可是最後出現的是DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=1 }

    請問有解嗎

    for (int i = 1; i <= dataGridView1.RowCount - 1;i++ )
                    {
                        if (textid.Text == dataGridView1.Rows[i].Cells[0].Value.ToString())
                        {
                            for (i = 0; i <= dataGridView1.RowCount - 1; ) {
                                dataGridView1.DataSource = null;
                                dataGridView1.Refresh();
                                dataGridView1.Rows.Add(
                                    dataGridView1.Rows[i].Cells[0]
                                    );
                                return;
                            } 

    2014年10月9日 上午 07:27
  • 要做過濾, 用 DataView 來輔助吧.

    參考

    ADO.NET 2.0 - 如何使用 DataView 來篩選資料


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年10月9日 上午 08:34
    版主