Dataset.GetXml (); проблема в C # - PullRequest
       25

Dataset.GetXml (); проблема в C #

0 голосов
/ 19 декабря 2011

Я читаю файл CSV в набор данных и теперь хочу получить строку XML.Я не могу получить правильно сформированные теги XML.Что мне здесь делать?

case1: если я использую заголовок в CSV-файлах

case2: без заголовка.

Мне нужно получить то же самоезаголовки тегов, чтобы позже я смог использовать их в своем коде.вот мой 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 голосов
/ 19 декабря 2011

case1: при использовании строки заголовка в файлах csv

Если у вас есть строка заголовка, вы должны получить правильно сформированные теги XML, просто не очень хорошие в зависимости отна твои имена.Вы можете изменить свой SQL, чтобы исправить это, если хотите

например SELECT [First Name] as FirstName, [Web Address] as WebAddress ....

case2: без заголовка.

Из вашего примера XML ваш CSV-файл не содержит строку заголовка и использует значения из первой строки в качестве заголовка.

Когда это происходит, вам нужно добавить HDR=No в строку подключения, которая вместо этого будет обрабатывать первую строку как значения.

С Синтаксис строки подключения (ADO.NET)

Подключение к Excel

Поставщик Microsoft Jet используется для подключения к ExcelУчебное пособие.В следующей строке подключения ключевое слово Extended Properties устанавливает свойства, относящиеся к Excel."HDR = Yes";указывает, что первая строка содержит имена столбцов, а не данные, и "IMEX = 1;"велит драйверу всегда читать «смешанные» столбцы данных как текст.

Таким образом, ваша строка будет

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

Это означает, что ваши столбцы будутбыть названным в зависимости от их положения.F1, F2, F3.

Опять вы можете переименовать их в SELECT, если захотите.

например SELECT F1 as Name, F2 URL ....

...