c# datatable writexml控制列名
Posted
技术标签:
【中文标题】c# datatable writexml控制列名【英文标题】:c# datatable writexml control column names 【发布时间】:2020-03-19 22:05:35 【问题描述】:在我的程序中,我正在写入 SQLite DB 表的 XML 内容。一切都很好,但是输出格式不适合我。如何在元素中应用我自己的名字。因为如果我从 SQLite 加载到 DataTable 并尝试通过 WriteXML 保存列的名称是元素的名称。我想将元素的名称作为元素的属性。请看一下,这是我的代码。
我的 C# 代码:
namespace SQLiteDemo
internal class Program
private const string DatabaseFile = "j.db";
private const string DatabaseSource = "data source=" + DatabaseFile;
private static void Main(string[] args)
// Create the file which will be hosting our database
if (!File.Exists(DatabaseFile))
SQLiteConnection.CreateFile(DatabaseFile);
// Connect to the database
using (var connection = new SQLiteConnection(DatabaseSource))
// Create a database command
using (var command = new SQLiteCommand(connection))
connection.Open();
// Select and display database entries
command.CommandText = "Select * FROM DB_company_5000";
var ds = new DataTable();
ds.Load(command.ExecuteReader());
ds.WriteXml("jj.xml");
connection.Close(); // Close the connection to the database
Console.Read();
我的输出是:
<DB_company_5000>
<ID>3</ID>
<Name>Velin Ivan</Name>
<Adress>Vamberská 273</Adress>
<City>London 18</City>
<TEL>NULL</TEL>
<EXT>NULL</EXT>
</DB_company_5000>
期望的输出:
<table name="DB_company_5000">
<column name="ID">1</column>
<column name="Name">Velin Ivan</column>
<column name="Adress">Vamberská 273</column>
<column name="City">London 18</column>
<column name="TEL">NULL</column>
<column name="EXT">NULL</column>
</table>
感谢回复
【问题讨论】:
【参考方案1】:由于基本的 XML 只是字符串数据,我们可以使用简单的字符串替换来解决这个问题。它不是特别优雅,但我认为它回答了这个问题:
string xml = @"<DB_company_5000>
<ID>3</ID>
<Name>Velin Ivan</Name>
<Adress>Vamberská 273</Adress>
<City>London 18</City>
<TEL>NULL</TEL>
<EXT>NULL</EXT>
</DB_company_5000>";
xml = xml.Replace("<DB_company_5000>", "<table name=\"DB_company_5000\">");
xml = xml.Replace("</DB_company_5000>", "</table>");
xml = xml.Replace("<ID>", "<column name=\"ID\">");
xml = xml.Replace("</ID>", "</column>");
// ETC...
【讨论】:
是的,它非常简单但功能强大。谢谢。我正在寻找某种方法来使用一些内置机制来做到这一点。比如在 XML 中定义我自己的特定数据格式。或者按属性或映射类型以某种方式使用列映射。 不客气。随意将问题标记为已回答(单击复选标记图标)。这就是它在这里的工作方式。以上是关于c# datatable writexml控制列名的主要内容,如果未能解决你的问题,请参考以下文章
c#中两个列名相同的datatable,如何将他们数据加到一起?