Linq中ToList()和CopyToDataTable()用法详解
最近在项目中使用了Linq,想把Linq的查询结果直接转换成DataTable对象,通过查找发现Linq有一个CopyToDataTable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace CopyToDataTableDemo{class Program{static void Main(string[] args){string strConn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(strConn)){string strSQL = "SELECT * FROM Product";
SqlCommand cmd = new SqlCommand(strSQL, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
conn.Open();
try{DataTable dt = new DataTable();
adapter.Fill(dt);
//CopyToDataTable()DataTable dtTemp = dt.AsEnumerable().Where
报错信息如下:
文章图片
该错误信息说明如果Linq的查询结果不包含任何DataRow对象的时候,使用该方法会报错,那么怎么将Linq的查询结果转换成DataTable使用呢?
继续查询Linq的方法,发现Linq还有一个ToList()的方法,使用该方法可以解决Linq查询结果不包含任何DataRow对象时报错的问题,代码修改如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace CopyToDataTableDemo{class Program{static void Main(string[] args){string strConn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(strConn)){string strSQL = "SELECT * FROM Product";
SqlCommand cmd = new SqlCommand(strSQL, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
conn.Open();
try{DataTable dt = new DataTable();
adapter.Fill(dt);
//CopyToDataTable()// 当LINQ的查询结果不包含任何DataRow对象的时候会报错//DataTable dtTemp = dt.AsEnumerable().Where
使用ToList()方法就可以解决该报错问题了。
【Linq中ToList()和CopyToDataTable()用法详解】到此这篇关于Linq中ToList()和CopyToDataTable()用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- SQL基础查询和LINQ集成化查询
- C语言中#define定义的标识符和宏实例代码
- Java|Java 中线程池的 7 种创建方式!
- Java|Java 替换PDF中的字体
- 程序人生|公司来了个卷王,我愿称之为王中王,让人崩溃
- 面试中的MySQL主从复制|手撕MySQL|对线面试官
- 在 Kubernetes 集群中使用 MetalLB 作为 LoadBalancer(下)- BGP
- Downie 4 Mac(视频下载工具) v4.4.9中文版
- edge浏览器什么相当于ie的中低_微软默认浏览器(Edge对比IE|edge浏览器什么相当于ie的中低_微软默认浏览器:Edge对比IE 有哪些优势,哪个好(...))
- 中间件|2021年中国软件产业发展现状分析(软件业务收入达94994亿元,同比增长16.43%[图])