Click here to Skip to main content
15,914,943 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
How to Search data in DataGridView
Posted

C#
private void Search_Click(object sender, EventArgs e)
        {
            DataTable dtTemp;
            dtTemp = dtSource.Clone();


            for (int i = 0; i < dtSource.Rows.Count; i++)
            {
                if (MatchWildcardString(textBox1.Text,dtSource.Rows[i].ItemArray[0].ToString()))
                {
                    dtTemp.ImportRow(dtSource.Rows[i]);
                }
            }

            dataGridView1.DataSource = dtTemp;
            String x = dataGridView1.RowCount.ToString();

        }

        public Boolean MatchWildcardString(String pattern, String input)
        {
            if (String.Compare(pattern, input) == 0)
            {
                return true;
            }
            else if (String.IsNullOrEmpty(input))
            {
                if (String.IsNullOrEmpty(pattern.Trim(new Char[1] { '*' })))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else if (pattern.Length == 0)
            {
                return false;
            }
            else if (pattern[0] == '?')
            {
                return MatchWildcardString(pattern.Substring(1), input.Substring(1));
            }
            else if (pattern[pattern.Length - 1] == '?')
            {
                return MatchWildcardString(pattern.Substring(0, pattern.Length - 1), input.Substring(0, input.Length - 1));
            }
            else if (pattern[0] == '*')
            {
                if (MatchWildcardString(pattern.Substring(1), input))
                {
                    return true;
                }
                else
                {
                    return MatchWildcardString(pattern, input.Substring(1));
                }
            }
            else if (pattern[pattern.Length - 1] == '*')
            {
                if (MatchWildcardString(pattern.Substring(0, pattern.Length - 1), input))
                {
                    return true;
                }
                else
                {
                    return MatchWildcardString(pattern, input.Substring(0, input.Length - 1));
                }
            }
            else if (pattern[0] == input[0])
            {
                return MatchWildcardString(pattern.Substring(1), input.Substring(1));
            }
            return false;
        }
 
Share this answer
 
//For Adding Data In DataTable

Datatable Dt = new Datatable();//here get your record which you want to show in grid
Dt.Column.Add("Name");
Dt.Rows.Add("Item 1");
Dt.Rows.Add("Item 2");
Dt.Rows.Add("Item 3");

//For Searching
Datarow[] Dr = Dt.Select(" Name='Item 1'");//you're Condition to search in the field
if(Dr.Length > 0)
{
    //Do Work
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900