62,046
社区成员
发帖
与我相关
我的任务
分享
DataTable dt = new DataTable("data");
DataColumn dc1 = new DataColumn("Id", Type.GetType("System.Int32"));
DataColumn dc2 = new DataColumn("Name", Type.GetType("System.String"));
DataColumn dc3 = new DataColumn("GradeName", Type.GetType("System.String"));
DataColumn dc4= new DataColumn("className", Type.GetType("System.String"));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
DataRow dr = dt.NewRow();
dr["StuId"] = "1";
dr["Name"] = "张三";
dr["GradeName"] = "大一";
dr["className"] = "物理系";
dt.Rows.Add(dr);
dr=dt.NewRow();
dr["StuId"] = "1";
dr["Name"] = "张三";
dr["GradeName"] = "大一";
dr["className"] = "数学系";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["StuId"] = "2";
dr["Name"] = "李四";
dr["GradeName"] = "大一";
dr["className"] = "计算机系";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["StuId"] = "2";
dr["Name"] = "李四";
dr["GradeName"] = "大一";
dr["className"] = "物理系";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["StuId"] = "3";
dr["Name"] = "王五";
dr["GradeName"] = "大二";
dr["className"] = "物理系";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["StuId"] = "3";
dr["Name"] = "王五";
dr["GradeName"] = "大二";
dr["className"] = "数学系";
dt.Rows.Add(dr);
/*
我现在想查询所有的学生信息为:
1 张三
2 李四
3 王五
查询大一的学生:
1 张三
2 李四
查询数学系的学生:
1 张三
3 王五
查询大一数学系的学生:
1 张三
*/
}
private static void PrintRows(DataRow[] rows, string label)
{
Response.Write(string.Format("/n{0}", label));
if(rows.Length <= 0)
{
Response.Write("no rows found");
return;
}
foreach(DataRow row in rows)
{
foreach(DataColumn column in row.Table.Columns)
{
Response.Write(string.Format("/table {0}", row[column]));
}
}
}
...
string expression;
string sortOrder;
expression = "className='数学系'";
sortOrder = "StuId DESC";
// 使用Select方法找出所有符合过滤条件的行
DataRow[] foundRows =
dt.Select(expression, sortOrder,
DataViewRowState.Added);
PrintRows(foundRows, "filtered rows");
//所有学生
foundRows = dt.Select();
PrintRows(foundRows, "all rows");
var squery = from pl in dt.AsEnumerable()
where pl.Field<string>("StuId") == '' //你的条件
select pl;
foreach (var item in squery)
{
//...
}
public static DataTable SelectDataTable(DataTable dtInit, string sFilterCondition)
{
DataRow[] DRs = dtInit.Select(sFilterCondition);
DataTable dtTemp = dtInit.Clone();
foreach (DataRow dr in DRs)
{
dtTemp.ImportRow(dr);
}
return dtTemp;
}
调用示例: DataTable dtResult=SelectDataTable(dtOrigion,"id=3");其中 dtOrigion就是你原始的datatable