本文新版已迁移到我的新博客,查看更多技术文章请访问我的博客
当前有一个任务,需要将datatable中数据筛选后存入新的datatable中,我的mysql数据库中表字段名为ErrorType,程序如下
SqlDataSource errorHoleInfoSqlDataSource = new SqlDataSource(); //还是使用SQLDataSource数据源,参见我的其他文章
errorHoleInfoSqlDataSource.ConnectionName = "localhost_Connection";
errorHoleInfoSqlDataSource.Name = "errorHoleInfoSqlDataSource";
query.Name = "selectQuery2";
query.Sql = "select * from errorholeinfo where ProjectName = '" + projectName + "'";
errorHoleInfoSqlDataSource.Queries.Add(query);
errorHoleInfoSqlDataSource.Fill();
ITable src = errorHoleInfoSqlDataSource.Result["selectQuery2"];
DataTable table = new DataTable("project");
foreach (IColumn column in src.Columns)
table.Columns.Add(column.Name, column.Type);
foreach (IRow row in src)
table.Rows.Add(row.ToArray());
if (table.Rows.Count == 0)
{
return false;
}
else
{
DataTable newDataTable = new DataTable();
newDataTable.Columns.Add("ErrorType", typeof(string));
var errorHoleInfoQuery = from r in table.AsEnumerable() //使用linq进行查询
where r.Field<string>("ErrorType") == "漏孔"
let objectArray = new object[]
{
r.Field<string>("ErrorType")
}
select objectArray;
SqlDataSource errorHoleInfoSqlDataSource = new SqlDataSource(); //还是使用SQLDataSource数据源,参见我的其他文章
errorHoleInfoSqlDataSource.ConnectionName = "localhost_Connection";
errorHoleInfoSqlDataSource.Name = "errorHoleInfoSqlDataSource";
query.Name = "selectQuery2";
query.Sql = "select * from errorholeinfo where ProjectName = '" + projectName + "'";
errorHoleInfoSqlDataSource.Queries.Add(query);
errorHoleInfoSqlDataSource.Fill();
ITable src = errorHoleInfoSqlDataSource.Result["selectQuery2"];
DataTable table = new DataTable("project");
foreach (IColumn column in src.Columns)
table.Columns.Add(column.Name, column.Type);
foreach (IRow row in src)
table.Rows.Add(row.ToArray());
if (table.Rows.Count == 0)
{
return false;
}
else
{
DataTable newDataTable = new DataTable();
newDataTable.Columns.Add("ErrorType", typeof(string));
var errorHoleInfoQuery = from r in table.AsEnumerable() //使用linq进行查询
where r.Field<string>("ErrorType") == "漏孔"
let objectArray = new object[]
{
r.Field<string>("ErrorType")
}
select objectArray;
foreach (var array in errorHoleInfoQuery)//存入新的DataTable
{
newDataTable.Rows.Add(array);
}
foreach (var array in errorHoleInfoQuery)//存入新的DataTable
{
newDataTable.Rows.Add(array);
}
return true;
return true;
}
}