Dataset.GetXml(); C#中的问题

时间:2011-12-19 06:44:19

标签: xml string c#-4.0 dataset

我正在将CSV文件读入数据集,现在想要获取xml字符串。我无法得到格式良好的xml标签。我该怎么办?

  

case1:如果我在csv文件中使用标题

     

案例2:没有标题。

我需要获得相同的标签标题,以便稍后我可以在我的代码中使用。 这是我的xml

    <NewDataSet>
   <Table>
    <George_x0020_Washington>John Adams</George_x0020_Washington>
    <http_x003A__x002F__x002F_en_x0023_wikipedia_x0023_org_x002F_wiki_x002F_George_Washington>http://en.wikipedia.org/wiki/John_Adams</http_x003A__x002F__x002F_en_x0023_wikipedia_x0023_org_x002F_wiki_x002F_George_Washington>
    <Independent_x0020_>Federalist</Independent_x0020_>
    <GeorgeWashington_x0023_jpg>JohnAdams.jpg</GeorgeWashington_x0023_jpg>
    <thmb_GeorgeWashington_x0023_jpg>thmb_JohnAdams.jpg</thmb_GeorgeWashington_x0023_jpg>
    <Virginia>Massachusetts</Virginia>
  </Table></NewDataSet>

这是我的代码

OleDbConnection excelConnection = new OleDbConnection
 (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=Text;");
    OleDbCommand excelCommand = new OleDbCommand(@"SELECT * FROM HS1.csv", excelConnection);
    OleDbDataAdapter excelAdapter = new OleDbDataAdapter(excelCommand);
    excelConnection.Open();
    DataSet ds = new DataSet();
    excelAdapter.Fill(ds);

1 个答案:

答案 0 :(得分:0)

  

case1:如果在csv文件中使用标题行

如果你有标题行,你应该得到格式良好的XML标签,这取决于你的名字。如果需要,可以更改SQL以修复

e.g。      SELECT [First Name] as FirstName, [Web Address] as WebAddress ....

  

案例2:没有标题。

从您的示例XML中,您的CSV文件不包含标题行,并使用第一行中的值作为标题。

当发生这种情况时,您需要将HDR=No添加到您的连接字符串中,该字符串会将第一行视为值。

来自Connection String Syntax (ADO.NET)

  

连接到Excel

     

Microsoft Jet提供程序用于连接到Excel工作簿。在   以下连接字符串,Extended Properties关键字集   特定于Excel的属性。 “HDR =是;”表示   第一行包含列名,而不是数据,“IMEX = 1;”告诉了   驱动程序始终将“混合”数据列读作文本。

所以你的字符串将是

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=""Text;HDR=No""

但这意味着您的列将根据其位置进行命名。 F1,F2,F3。

如果您愿意,可以再次在SELECT重命名。

e.g。 SELECT F1 as Name, F2 URL ....