簡體   English   中英

選擇並顯示DataGridView中的某些行

[英]Select and display certain rows in DataGridView

我試圖讓DataGridView 顯示輸入的姓氏的行。 從那里,我可以構建我的程序的其余部分,但是遇到了一個問題。 我在線上看到了Submit_Button_Click事件中的那個代碼補丁,但是它不起作用。 它在else括號處中斷。 有什么建議嗎? 抱歉,我是新手,但是一旦我學會了它,我將永遠記住。

public partial class Form1 : Form
{
    string LastName;
    //string FirstName;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.aRMORERS_TableAdapter.Fill(this.armorersDataSet._ARMORERS_);
    }

    private void Submit_Button_Click(object sender, EventArgs e)
    {
        LastName = LastName_TextBox.Text;
        //FirstName = FirstName_TextBox.Text;
        for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
        {
            if (dataGridView1.Rows[i].Cells[0].Value.ToString() == LastName)
            {
                dataGridView1.Rows[i].Selected = true;
                dataGridView1.Rows[i].Visible = true;
            }
            else
            {
                dataGridView1.Rows[i].Visible = false;
                dataGridView1.Rows[i].Selected = false;
            }
        }
    }
}

我建議您使用過濾而不是循環。

嘗試通過以下方法替換您的Submit_Button_Click事件處理程序中的代碼:

    private void Submit_Button_Click(object sender, EventArgs e)
    {
        string lastName = LastName_TextBox.Text;
        (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = 
             string.Format("Field_Name = '{0}'", lastName);
    }

其中“ Field_Name”應替換為您的列名。

PS如果不需要姓氏的精確匹配,則可以將LIKE運算符與通配符一起使用,以使用模式“包含”和“開頭為”(或“結尾為”)進行過濾。

包含文本框中的所有字符: string.Format("Field_Name LIKE '*{0}*'", lastName);

以文本框中的字符string.Format("Field_Name LIKE '{0}*'", lastName);string.Format("Field_Name LIKE '{0}*'", lastName);

結尾為: string.Format("Field_Name LIKE '*{0}'", lastName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM