如何通过C#将XML文件导入Access数据库?

时间:2015-03-03 15:57:50

标签: c# xml ms-access

我有一个测试夹具,可以将结果保存在XML文件中。从那里,我可以打开Access数据库,导入文件并将内容附加到预先存在的表。但是,我正试图让这个过程自动化。

到目前为止,在一些教程的帮助下,我已经能够使用C#打开Access数据库文件。我可以读取XML文件,解析数据并将其插入表中,但是,是否有任何函数/文档可以模拟Access中的导入向导,并将XML文件位置作为参数?

这是XML文件的结构:

<root>
  <Test1>
    <Serial_x0020_Number>SerialNumber</Serial_x0020_Number>
    <Date>2015-03-03T07:13:28</Date>
    <Voltage1>7.620000</Voltage1>
    <Voltage2>7.620000</Voltage2>
    <Voltage3>7.620000</Voltage3>
    <Voltage4>7.620000</Voltage4>
    <Pass>N</Pass>
  </Test1>
  <Test2>
    <Serial_x0020_Number>SerialNumber</Serial_x0020_Number>
    <Date>2015-03-03T07:13:28</Date>
    <Voltage1>14.000000</Voltage1>
    <Voltage2>301.000000</Voltage2>
    <Voltage3>251.000000</Voltage3>
    <Voltage4>149.000000</Voltage4>
    <Voltage5>91.000000</Voltage5>

    <Pass>Y</Pass>
  </EFT_x0020_Waveform_x0020_Test>
</root>

XML文件可以包含1到150个条目,包含1到12个表,其中每个“Test”对应一个表,测试中的条目对应一列。

我曾经连接数据库的教程:https://www.youtube.com/watch?v=MPBlsJpRFqY

编辑:我最终解析了XML并使用了Tim Morford发布的一些代码。感谢。

1 个答案:

答案 0 :(得分:2)

首先,您需要解析XML文档:

XmlDocument xml = new XmlDocument();
xml.LoadXml(sResponse); //Your XML Document
foreach (XmlNode row in xml.ChildNodes) //Loop the child nodes
{
    Serial_x0020_Number = row.SelectSingleNode("Serial_x0020_Number").InnerText; //Get value of each node
    Date = row.SelectSingleNode("Date").InnerText;
    Voltage1 = row.SelectSingleNode("Voltage1").InnerText;
    Voltage2 = row.SelectSingleNode("Voltage2").InnerText;
    Voltage3 = row.SelectSingleNode("Voltage3").InnerText;
    Voltage4 = row.SelectSingleNode("Voltage4").InnerText;
    Passed= row.SelectSingleNode("Passed").InnerText;

    //Insert command here 
    string sSQL = "INSERT INTO TABLENAME(SN,Date,Voltage1, Voltage2,Voltage3,Voltage4,Passed) VALUES ('" + Date + "','" + Voltage1+ "','" + Voltage2+ "','" + Voltage3+ "','" + Voltage4+ "','" + PAssed + "');";
    //You will have to use a connection string and process the SQL in the typical way you are use to. 
} 

您还可以看到此链接用于解析XML How does one parse XML files?