C#过滤DataTable中空数据和重复数据的示例代码
作者:婉的裕 时间:2022-03-15 19:33:45
C#过滤DataTable中的空数据和重复数据
string sql = "select name,age from user";
DataTable data = DB.ExecuteDataTable(string.Format(sql)); //得到DataTable
// ------------start 去重-------------------
string[] distinctcols = new string[(data.Columns.Count)];
foreach (DataColumn dc in data.Columns)
{
distinctcols[dc.Ordinal] = dc.ColumnName;
}
DataView mydataview = new DataView(data);
DataTable data1 = mydataview.ToTable(true, distinctcols);
// ------------end -------------------
// ------------start 去null-------------------
DataTable data2 = data1.Clone();//克隆表
foreach (DataRow drItem in data1.Rows)
{
//过滤,判断条件的下标自己控制
if (!string.IsNullOrWhiteSpace(drItem[0].ToString()) && !string.IsNullOrWhiteSpace(drItem[1].ToString()))
{
data2.Rows.Add(drItem.ItemArray);
}
}
// ------------end-------------------
/**
下面没啥用,增加一行空白行,搜索的时候当全部搜索用
*/
DataRow row = data2.NewRow();
data2.Rows.InsertAt(row, 0);
return data2;
附:c# datatable根据某个条件过滤数据
判断DataTable中某一行某列的数据为空值的办法
需要使用DataRow类自带的一个函数IsNull。
if(!DataRow.IsNull(index))
if(Convert.IsDBNull(Row.ItemArray[index]))
在DataReader(如SqlDataReader)有相同功能的IsDBNull函数
datatable根据某个条件过滤数据
public static DataTable TblFilter(DataTable sourceTable, string condition)
{
var tempDt = sourceTable.Clone();
var rows = sourceTable.Select(condition);
foreach (var dr in rows)
{
tempDt.ImportRow(dr);
}
return tempDt;
}
public static DataTable TblFilter(DataTable sourceTable, string condition, string[] columns)
{
var tempDt = new DataTable();
foreach (var t in columns)
{
tempDt.Columns.Add(t, typeof(String));
}
var rows = sourceTable.Select(condition);
foreach (var dr in rows)
{
var newDr = tempDt.NewRow();
foreach (var t in columns)
{
newDr[t.Split(':')[0]] = dr[t.Split(':')[0]].ToString();
}
tempDt.Rows.Add(newDr);
}
return tempDt;
}
sql语句中left,right函数取字段的左或者右几位数字
LEFT(shopid,4)
来源:https://blog.csdn.net/weixin_46836563/article/details/112183358
标签:过滤,datatable,空数据


猜你喜欢
一篇文章弄懂JVM类加载机制过程以及原理
2022-01-19 10:32:57

Android实现流光和光影移动效果代码
2023-09-24 23:57:55

详解Java递归实现树形结构的两种方式
2023-02-18 07:24:47

Android DataBinding手把手入门教程
2023-04-29 18:51:24

Android编程开发之NotiFication用法详解
2023-01-19 22:50:11

mybatis 多表关联mapper文件写法操作
2021-12-02 23:21:25
JAVA实现心跳检测(长连接)
2022-12-16 04:26:30

Struts2通过自定义标签实现权限控制的方法
2021-07-19 11:06:22
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
2022-05-14 03:39:32
C#调用Windows的API实现窗体动画
2022-09-09 13:05:22

C#实现简单的字符串加密
2022-12-28 17:09:29
Springboot通过run启动web应用的方法
2021-08-30 01:57:37

java语言自行实现ULID过程底层原理详解
2023-04-13 22:38:50

idea企业开发之新建各类型项目的详细教程
2023-02-28 05:27:11

c#的时间日期操作示例分享(c#获取当前日期)
2021-07-09 15:44:35
Android Studio设置或修改Android SDK路径方法
2023-11-07 17:22:10

Spring创建Bean的生命周期详析
2022-01-27 06:33:26

Spring @Cacheable指定失效时间实例
2022-12-06 08:58:35

解决MyBatis @param注解参数类型错误异常的问题
2023-12-01 06:41:45
swagger如何返回map字段注释
2023-02-22 08:56:27
