cdatatable过滤
1. GridView如何做数据筛选
这个啊,你可以在按钮click事件里写代码,进行筛选后再绑定到GridView
你从版数据库中查到的数据集权 dataset1
DataSet dataset2=new DataSet() 自定义一个 以后要绑定
for(int i=0;i<dataset1.tables[0].rows.count;i++)
{
if(dataset1.tables[0].rows[i]["列名"].ToString=="正常")
{
ds.tables[0].ImportRow(...具体如何自己写...);
}
}
this.gridView.datasorce=ds.tables[0];
this. gridView.dataBind();
// 以上用表 DataTable 做会更好,具体细节你自己看吧
和我做的有细微的差异
不过我估计你能看明白的
2. C#在datatable中怎么筛选数据
对DataTable数据各种筛选
筛选一个DataTable的数据,赋值给另外一个DataTable
假设:
有2个DataTable:DataTable A、DataTable B。
要求:
筛选DataTable A中itemType字段值为book的数据,然后把筛选出来的数据,赋给DataTable B
实现:
(1)方法一:通过 RowFilter 筛选实现
DataView view = new DataView();
view.Table = A;
view.RowFilter = "itemType = 'book'";//itemType是A中的一个字段
B= view.ToTable();
(2)方法二:通过 Select()筛选
DataRow[] rows = A.Select("itemType = 'book'");
B= A.Clone(); //克隆A的结构
foreach (DataRow row in rows)
{
B.ImportRow(row);//复制行数据
}
注:如果有多个筛选条件的话,可以加 and 或 or。例如: A.Select("itemType = 'book' and a='b' or a='c'");
3. c# DataSet筛选
加一个条件就行了,出入库情况=‘入’
4. c# 我有三个表A、B、C,其中A和B有可能都包含得有c中的数据,想对比三个表的数据,如何做
a和b里面有相同的数据吗,如果没有,你可以先把a,b两个数据都从数据库里面读取出来然后放在回一个DataTable里面,答再和c里面数据比较,如果有重复的就不读取,不重复的把数据添加到另一个DataTable里面, 这样这个DataTable就会是不重复的数据,
如果a,b有重复数据得先把这两个表里面的重复数据过滤下然后进行上面的操作,
这只是个思路
5. C# Winform DataTable 怎么过滤两列不重复
楼上的复杂了 你这个问题非常简单,建议使用分组,这样速度效率都很快
select
列1,列2,MIN(列3)as得到的列3
from列
groupby
列1,列2
6. 如何通过c#筛选excel里的指定内容
//那就全部读到datatable里,然后在判断
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingMicrosoft.Office.Interop.Excel;
namespaceTestAccess
{
classProgram
{
staticvoidMain(string[]args)
{
stringstrConnection="Provider=Microsoft.ACE.OLEDB.12.0;";
strConnection+=@"DataSource=C:DocumentsandSettingsv-changlMyDocumentscouse.xlsx;";
strConnection+="ExtendedProperties="Excel12.0Xml;HDR=YES";";
OleDbConnectionobjConnection=newOleDbConnection(strConnection);
objConnection.Open();
OleDbDataAdaptermyCommandd=newOleDbDataAdapter("select*from[Sheet1$]",objConnection);
DataSetds=newDataSet();
myCommandd.Fill(ds,"[Sheet1$]");
System.Data.DataTabledt=ds.Tables["[Sheet1$]"];
Console.WriteLine(dt.Columns[0].ToString());
Console.WriteLine(dt.Columns[1].ToString());
DataRowdrDisplay=dt.Rows[0];
int[]num=newint[dt.Columns.Count];
for(intj=0;;)
{
for(inti=0;i<dt.Columns.Count;i++)
{
if(drDisplay[i]isDBNull);
else
num[i]+=Convert.ToInt32(drDisplay[i]);
}
if(++j>=dt.Rows.Count)break;
drDisplay=dt.Rows[j];
}
objConnection.Close();
objectMissingValue=Type.Missing;
Microsoft.Office.Interop.Excel.Applicationapp=newApplication();
Microsoft.Office.Interop.Excel.Workbookwbook=app.Workbooks.Open(@"C:DocumentsandSettingsv-changlMyDocumentscouse.xlsx",MissingValue,
MissingValue,MissingValue,MissingValue,
MissingValue,MissingValue,MissingValue,
MissingValue,MissingValue,MissingValue,
MissingValue,MissingValue,MissingValue,
MissingValue);
Microsoft.Office.Interop.Excel.Worksheetwsheet=wbook.ActiveSheetasMicrosoft.Office.Interop.Excel.Worksheet;
for(inti=0;i<dt.Columns.Count;i++)
{
//注意下面是i+1,,excel小标默认从1开始
wsheet.Cells[dt.Rows.Count+2,i+1]=num[i].ToString();
}
wbook.Save();
wbook.Close(true,null,null);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wsheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
wsheet=null;
wbook=null;
app=null;
GC.Collect();
}
}
}
7. 请问在excel中,已经筛选出符合条件的项目,但做数据透视表时仍然是按源数据表统计所做。如何解决
在筛选出的表格中随便选择一个单元格,然后按CTRL+A全选,按CTRL+;选择可见单元格,CTRL+C复制,在其他地方CTRL+V复制,用这个新的数据源做透视表即可
8. C# 过滤DataTable中的相同行(gethashcode)
写个方法
/// <summary>
/// 返回执行Select distinct后的DataTable
/// </summary>
/// <param name="SourceTable">源数据表</param>
/// <param name="FieldNames">字段集</param>
/// <returns></returns>
private DataTable SelectDistinct(DataTable SourceTable, params string[] FieldNames)
{
object[] lastValues;
DataTable newTable;
DataRow[] orderedRows;
if (FieldNames == null || FieldNames.Length == 0)
throw new ArgumentNullException("FieldNames");
lastValues = new object[FieldNames.Length];
newTable = new DataTable();
foreach (string fieldName in FieldNames)
newTable.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);
orderedRows = SourceTable.Select("", string.Join(",", FieldNames));
foreach (DataRow row in orderedRows)
{
if (!fieldValuesAreEqual(lastValues, row, FieldNames))
{
newTable.Rows.Add(createRowClone(row, newTable.NewRow(), FieldNames));
setLastValues(lastValues, row, FieldNames);
}
}
return newTable;
}
private bool fieldValuesAreEqual(object[] lastValues, DataRow currentRow, string[] fieldNames)
{
bool areEqual = true;
for (int i = 0; i < fieldNames.Length; i++)
{
if (lastValues[i] == null || !lastValues[i].Equals(currentRow[fieldNames[i]]))
{
areEqual = false;
break;
}
}
return areEqual;
}
private DataRow createRowClone(DataRow sourceRow, DataRow newRow, string[] fieldNames)
{
foreach (string field in fieldNames)
newRow[field] = sourceRow[field];
return newRow;
}
private void setLastValues(object[] lastValues, DataRow sourceRow, string[] fieldNames)
{
for (int i = 0; i < fieldNames.Length; i++)
lastValues[i] = sourceRow[fieldNames[i]];
}
9. C#在datatable中怎么筛选数据
对DataTable数据各种筛选
筛选一个DataTable的数据,赋值给另外一个DataTable
假设:
有2个DataTable:DataTable A、 B。
要求:
筛选DataTable A中itemType字段值为book的数据,然后把筛选出来的数据,赋给DataTable B
实现:
(1)方法一:通过 RowFilter 筛选实现
DataView view = new DataView();
view.Table = A;
view.RowFilter = "itemType = 'book'";//itemType是A中的一个字段
B= view.ToTable();
(2)方法二:通过 Select()筛选
DataRow[] rows = A.Select("itemType = 'book'");
B= A.Clone(); //克隆A的结构
foreach (DataRow row in rows)
{
B.ImportRow(row);//复制行数据
}
注:如果有多个筛选条件的话,可以加 and 或 or。例如: A.Select("itemType = 'book' and a='b' or a='c'");