我正在将excel文件导入datagridview
然后我想在这些数据中执行盲搜索,这些数据可能是从一个或多个文件导入的
现在我正在使用下面的方法过滤数据,我在Texrbox_TextChanged
事件
public void DataFilter()
{
BindingSource bs = new BindingSource();
bs.DataSource = DGV_Data.DataSource;
bs.Filter = string.Format(@"convert(National_ID,'System.String') LIKE '%{0}%'
AND First_Name LIKE '%{1}%'
AND Father_Name LIKE '%{2}%'
AND Last_Name LIKE '%{3}%'
AND Mother_Full_Name LIKE '%{4}%'
AND Nationality LIKE '%{5}%'",
TB_National_ID.Text,
TB_First_Name.Text,
TB_Father_Name.Text,
TB_Last_Name.Text,
TB_Mother_Full_Name.Text,
TB_Nationality.Text);
DGV_Data.DataSource = bs;
Re-calculate record counts
L_Rows_Count.Text = "Count: " + (DGV_Data.Rows.Count - 1).ToString("n0");
}
但是会根据列过滤数据,所以我尝试将其转换为盲目搜索,如下所示
public void DataFilter()
{
ExcelRange.get_Range("A1", "XFD1");
Range findRng =
ExcelRange.Find("hello sa",
Type.Missing,
Excel.XlFindLookIn.xlFormulas,
Excel.XlLookAt.xlPart,
Excel.XlSearchOrder.xlByRows,
Excel.XlSearchDirection.xlNext,
false,
false,
false);
DGV_Data.DataSource = bs;
Re-calculate record counts
L_Rows_Count.Text = "Count: " + (DGV_Data.Rows.Count - 1).ToString("n0");
}
我收到的错误是
对象引用未设置为对象的实例。
也不会回复datagridview
所有可能与文本匹配的记录......我将失去LIKE功能
并且我没有使用范围因为我的代码无法修复
还有任何建议或更好的想法吗?
更新
我不知道是否可以以某种方式使用where子句的示例查询
cmdtxt = @"select * from [" + ExcelWorkSheets.Name + "$] where somehow ";