关键词:
【中文标题】使用 Linq C# 为 DataTable 的每条记录创建 XML 文件【英文标题】:create XML file for each record of the DataTable using Linq C# 【发布时间】:2017-02-15 07:05:31 【问题描述】:目前我正在从单个 XML 文件中的数据表中的所有记录创建 XML 文件,我想使用 linq 分别为每个记录创建 XML 文件。
DataTable dtTest = new DataTable();
dtTest.Columns.Add("Name");
dtTest.Columns.Add("NickName");
dtTest.Columns.Add("Code");
dtTest.Columns.Add("reference");
dtTest.Rows.Add("Yash", "POPs", "Vapi", "None1");
dtTest.Rows.Add("shilpa", "shilpa", "valsad", "None2");
dtTest.Rows.Add("Dinesh", "dinu", "pune", "None3");
dtTest.Rows.Add("rahul", "mady", "pardi", "None4");
XDocument xmlDoc = new XDocument(
new XElement(
"File",
from fields in dtTest.AsEnumerable()
select new XElement(
"company_details",
new XElement(
"company",
new XElement(
"Name",
fields.Field<string>("Name")),
new XElement(
"NickName",
fields.Field<string>("NickName"))),
new XElement(
"Details",
new XElement(
"reference",
fields.Field<string>("reference"))))));
string filepath = @"C:\Users\admin\Desktop\test.xml";
xmlDoc.Save(filepath);
【问题讨论】:
【参考方案1】:您可以使用ForEach
方法为每个row
创建xml
DataTable dtTest = new DataTable();
dtTest.Columns.Add("Name");
dtTest.Columns.Add("NickName");
dtTest.Columns.Add("Code");
dtTest.Columns.Add("reference");
dtTest.Rows.Add("Yash", "POPs", "Vapi", "None1");
dtTest.Rows.Add("shilpa", "shilpa", "valsad", "None2");
dtTest.Rows.Add("Dinesh", "dinu", "pune", "None3");
dtTest.Rows.Add("rahul", "mady", "pardi", "None4");
dtTest.AsEnumerable().ToList().ForEach(x => CreateXml(x));
public void CreateXml(DataRow row)
XDocument xmlDoc = new XDocument(
new XElement(
"File",
new XElement(
"company_details",
new XElement(
"company",
new XElement(
"Name",
row.Field<string>("Name")),
new XElement(
"NickName",
row.Field<string>("NickName"))),
new XElement(
"Details",
new XElement(
"reference",
row.Field<string>("reference"))))));
xmlDoc.Save(Server.MapPath(row.Field<string>("Name")) + ".xml");
【讨论】:
在 C# 中使用 Linq 创建一个仅包含唯一值的 DataTable
】在C#中使用Linq创建一个仅包含唯一值的DataTable【英文标题】:CreateaDataTablecontainingonlyuniquevalueswithLinqinC#【发布时间】:2020-11-2509:42:54【问题描述】:我有一个数据表dt_CandidatesCandidate|FirstName|LastName--------------------|----------------|--... 查看详情
使用 Linq C# 在 DataTable 中查找重叠的日期
】使用LinqC#在DataTable中查找重叠的日期【英文标题】:FindDateOverlappinginDataTableUsingLinqC#[duplicate]【发布时间】:2021-02-2607:13:27【问题描述】:我有一个包含startdate和enddate列的数据表。我想使用linq检查重叠的开始日期和结束日期。... 查看详情
C# 使用带有 where 子句的 Linq 查询作为 dataTable 上的变量
】C#使用带有where子句的Linq查询作为dataTable上的变量【英文标题】:C#UsingLinqQuerywithwhereclauseasvariableondataTable【发布时间】:2017-01-1216:48:57【问题描述】:我看到了不同的示例和问题,但我不知道如何成功编写此查询。where子句条... 查看详情
将 DataTable 转换为字典 C#
】将DataTable转换为字典C#【英文标题】:TransformaDataTableintoDictionaryC#【发布时间】:2013-11-1120:08:14【问题描述】:我想知道如何将DataTable转换为Dictionary。我做了这样的事情。usingSystem.Linq;internalDictionary<string,object>GetDict(DataTable... 查看详情
c#中的getenumerator方法,c#datatable几个常用的查询表达式,c#的linq怎么用干啥用的
...个对象,可以遍历访问集合类对象中的每一个元素对象2.DataTabledt=GetDetails().Tables[0];//获取可用的DataTable//varm=dt.AsEnumerable().Last<DataRow>();返回DataTable最后一行DataRow//varm=dt.AsEnumerable().First<DataRow>();返回DataTable第一行DataRow//var... 查看详情
c#中怎样用for循环为datatable的每一行每一列都赋值为“*”?
...p; table.Row[i][j]="*"; 参考技术ADataTabletable=newDataTabel();DataRowrow=newDataRow();row.add("row");Columnc=newColumn();c.add("aaa");row.addColumn(c);table.addRow(row);大概思路就是这样的 参考技术Bforeach(varrintable.rows)fo... 查看详情
使用 DataContext 从 LINQ 查询中填充 DataTable 的最快方法
】使用DataContext从LINQ查询中填充DataTable的最快方法【英文标题】:FastestwaytofillDataTablefromLINQqueryusingDataContext【发布时间】:2011-02-1004:00:04【问题描述】:我正在尝试运行linq查询,但我需要将结果作为数据表,因为我使用它来将... 查看详情
如何在末尾使用空列值对 C# Datatable 进行排序
】如何在末尾使用空列值对C#Datatable进行排序【英文标题】:HowtosortC#Datatablewithemptycolumnvaluesattheend【发布时间】:2020-07-2906:46:47【问题描述】:我有一个包含1000行的C#数据表。但主要的200行有空值(多列)。过滤器会发生在这些... 查看详情
使用 linq 填充 DataTable 对象 [关闭]
】使用linq填充DataTable对象[关闭]【英文标题】:PopulateDataTableobjectusinglinq[closed]【发布时间】:2021-09-2410:03:26【问题描述】:我有一个DataTable对象,并在foreach循环中填充它。ForEach(DirectoryEntitydEntityinListOfEntities)Datatable.Rows.Add(dEntity... 查看详情
如何使用自己的 DataTable 类“Linq to DataTable”
】如何使用自己的DataTable类“LinqtoDataTable”【英文标题】:Howto"LinqtoDataTable"usingOwnDataTableClass【发布时间】:2020-12-0915:49:46【问题描述】:我怎样才能把这个linq查询产生的任何东西放到我自己的DataTable类中?publicclassMyData... 查看详情
第一次用linq,请教怎么把结果转化为datatable
参考技术A直接转定义成datatable。(DataTable)result;本回答被提问者和网友采纳 查看详情
将 SQL 语句转换为 DataTable 上的 LINQ 查询
】将SQL语句转换为DataTable上的LINQ查询【英文标题】:convertingaSQLstatementtoLINQqueryonaDataTable【发布时间】:2011-02-0703:00:08【问题描述】:我正在研究LinqtoDataTable,Lambda。因为很难想把sql改成linq,Lambda是不行的。SQL代码下方是删除电... 查看详情
c#中datatable带条件的groupby写法怎么写?
DataTable的成员Rows类型是DataRowCollection,它虽然实现了ICollection和IEnumerable接口,能够被枚举和遍历,却没有实现IEnumerable<T>接口,所以无法直接在Rows上使用IEnumerable<T>的扩展方法(Select,Where,OrderBy,GroupBy,Join等)。想在Rows成... 查看详情
C# 使用 LINQ 将 List<string> 的所有元素替换为相同的模式
】C#使用LINQ将List<string>的所有元素替换为相同的模式【英文标题】:C#ReplaceallelementsofList<string>withthesamepatternwithLINQ【发布时间】:2013-05-3018:56:25【问题描述】:我有一个包含数千个字符串的C#列表:"2324343""6572332""45122"...... 查看详情
使用linq查询datatable某列数据
我的DataTable中有一列数量,假设列名叫:num,这个DataTable有多行数据。那么使用Linq语言能够求出设个列的所有合计值吗?如:SUM(num)。参考技术Avarq=(fromcin表名wherec.列名==numselectc.num).Sum();returnConvert.ToInt32(q);追问能解释一下不啊... 查看详情
使用 DataTable 和 Linq 导出到 Excel 中缺少某些数据
】使用DataTable和Linq导出到Excel中缺少某些数据【英文标题】:SomedataismissingintheExporttoExcelusingDataTableandLinq【发布时间】:2016-05-0401:57:22【问题描述】:我在单个XL文件中导出三个工作表,但我在第二个DataTable(EducationDetails表)和... 查看详情
使用 LINQ C# 将两行合并为基于列的单行
】使用LINQC#将两行合并为基于列的单行【英文标题】:MergetworowsintosinglerowbasedonacolumnusingLINQC#【发布时间】:2021-07-1823:26:16【问题描述】:我有一个如下所示的对象列表。我想根据B列将每两行连接成单行。可以肯定,每个单列B... 查看详情
C# LINQ 使用 DISTINCT 计数元素
】C#LINQ使用DISTINCT计数元素【英文标题】:C#LINQcountingelementswithDISTINCT【发布时间】:2013-07-1304:52:23【问题描述】:我有一个KeyValuePair项的集合,其中DateTime为键,字符串为值。基本上我的数据看起来像:12/07/2013-1022012/07/2013-1022012... 查看详情