C#过滤DataTable中空数据和重复数据的示例代码
C#过滤DataTable中的空数据和重复数据
stringsql="selectname,agefromuser";
DataTabledata=DB.ExecuteDataTable(string.Format(sql));//得到DataTable
//------------start去重-------------------
string[]distinctcols=newstring[(data.Columns.Count)];
foreach(DataColumndcindata.Columns)
{
distinctcols[dc.Ordinal]=dc.ColumnName;
}
DataViewmydataview=newDataView(data);
DataTabledata1=mydataview.ToTable(true,distinctcols);
//------------end-------------------
//------------start去null-------------------
DataTabledata2=data1.Clone();//克隆表
foreach(DataRowdrItemindata1.Rows)
{
//过滤,判断条件的下标自己控制
if(!string.IsNullOrWhiteSpace(drItem[0].ToString())&&!string.IsNullOrWhiteSpace(drItem[1].ToString()))
{
data2.Rows.Add(drItem.ItemArray);
}
}
//------------end-------------------
/**
下面没啥用,增加一行空白行,搜索的时候当全部搜索用
*/
DataRowrow=data2.NewRow();
data2.Rows.InsertAt(row,0);
returndata2;
附:c#datatable根据某个条件过滤数据
判断DataTable中某一行某列的数据为空值的办法
需要使用DataRow类自带的一个函数IsNull。
if(!DataRow.IsNull(index)) if(Convert.IsDBNull(Row.ItemArray[index]))
在DataReader(如SqlDataReader)有相同功能的IsDBNull函数
datatable根据某个条件过滤数据
publicstaticDataTableTblFilter(DataTablesourceTable,stringcondition)
{
vartempDt=sourceTable.Clone();
varrows=sourceTable.Select(condition);
foreach(vardrinrows)
{
tempDt.ImportRow(dr);
}
returntempDt;
}
publicstaticDataTableTblFilter(DataTablesourceTable,stringcondition,string[]columns)
{
vartempDt=newDataTable();
foreach(vartincolumns)
{
tempDt.Columns.Add(t,typeof(String));
}
varrows=sourceTable.Select(condition);
foreach(vardrinrows)
{
varnewDr=tempDt.NewRow();
foreach(vartincolumns)
{
newDr[t.Split(':')[0]]=dr[t.Split(':')[0]].ToString();
}
tempDt.Rows.Add(newDr);
}
returntempDt;
}
sql语句中left,right函数取字段的左或者右几位数字
LEFT(shopid,4)
总结
到此这篇关于C#过滤DataTable中空数据和重复数据的文章就介绍到这了,更多相关C#过滤DataTable空数据和重复数据内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!