使用 DataTable.Select
功能 数字模糊查询方案1 CAST(colname as varchar) 不好用
方案2 CONVERT ( varchar , colname ) 不好用
方案3 比较大小还没想好咋比较
方案4 不知道
功能 数字模糊查询方案1 CAST(colname as varchar) 不好用
方案2 CONVERT ( varchar , colname ) 不好用
方案3 比较大小还没想好咋比较
方案4 不知道
Select(String, String)获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow 对象的数组。 Select(String, String, DataViewRowState)获取与排序顺序中的筛选器以及指定的状态相匹配的所有 DataRow 对象的数组。
包含列 code(主键),a(int),b(varchar) 想用 DataTable.Select来查询a中含有123的数据
然后 DataTable.Select("colName like %"+value);
2 窗体需要个参数DataGridView(过滤DataGridView非隐藏的列)
3 现在出现个问题DataGridView的数据源DataTable可能含有数字类型的列(Int)
4 DataTable.Select(Like) 不支持转换字符串函数,Like也不能对数字操作
dt.Columns.Add("a");
dt.Columns.Add("b");
//dt.Columns.Add("c");
dt.Rows.Add(0,"col2");
dt.Rows.Add(1,"col2");
dt.Rows.Add(21233,"col2");
dt.Rows.Add(300123,"col2");
dt.Rows.Add(412353,"col2");
dt.Rows.Add(12331,"col2");
List<DataRow> rl = new List<DataRow>();
foreach (DataRow item in dt.Rows) {
if (Regex.Match(item["a"].ToString(),@"^\d*123\d*$").Success) {
rl.Add(item);
}
}
foreach (var item in rl) {
Console.WriteLine(item["a"]);
}
Console.Read();
能达到我要的效果,但是数据量大
dt.Columns.Add("b");
dt.Rows.Add(0,"col2");
导致速度慢了些