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;
}