C#怎样在DataTable中使用linq查询

本文介绍了一种方法,用于从MySQL数据库中根据特定条件筛选数据,并将其存储到新的DataTable中。通过使用LINQ查询,可以有效地实现数据筛选过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文新版已迁移到我的新博客,查看更多技术文章请访问我的博客


当前有一个任务,需要将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;
	    }    }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值