我需要一個用於將數據從XML文件傳輸到MySQL表的最快解決方案。 我有內部的多個表的XML文件,像這樣:用C#編寫MySQL到MySQL#
<?xml version="1.0" standalone="yes"?>
<RawData xmlns="">
<Table1>
<ID_Table1>1</ID_Table1>
<Name>Victor</Name>
</Table1>
<Table2>
<ID_Table2>1</ID_Table2>
<Quantity>10</Quantity>
</Table2>
</RawData>
和內VS2010,我有從MySQL數據庫的表1和表2數據表和TableAdapter的數據源。 我的目標是讀取XML文件,並直接傳遞它的數據到這些數據表與這樣的:如果數據類型不同,我得到異常 1(在數據源:
myDSDataSet eDS = (myDSDataSet)this.FindResource("myDS"); // Declared in XAML
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "XML Files|*.xml";
dlg.Title = "Select a XML File";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
mt1TableAdapter mt1_TA = new mt1TableAdapter();
mt2TableAdapter mt2_TA = new mt2TableAdapter();
manager = new TableAdapterManager();
xmlDS = new DataSet();
dt = null;
try
{
xmlDS.ReadXml(dlg.FileName,XmlReadMode.InferTypedSchema);
for (int i = 0; i < xmlDS.Tables.Count; i++)
{
dt = xmlDS.Tables[i].Copy();
eDS.Tables[eDS.Tables.IndexOf(xmlDS.Tables[i].TableName)].Merge(dt);
}
mt1_TA.Update(eDS.mt1);
mt2_TA.Update(eDS.mt2);
MessageBox.Show("Loading complete.");
}
catch (Exception error)
{
MessageBox.Show("ERROR: " + error.Message);
}
}
但執行此代碼我有2層大的問題後,字段爲日期時間,XML字段讀爲字符串) 2.調用TableAdapter.Update()需要很長時間才能將數據保存到db(15k行需要10-15分鐘)
所以......我的問題是,Can有人請幫我解決這兩個問題,或者給我一些指導,說明什麼是將XML數據保存到mysql的最快和最好的方法。
注意: - 我使用VS2010和MySQL 5.1。 - XML文件需要從外部源加載。 - XML有其xmlns,但爲簡單起見,此處省略。 - 我試着將MySQL升級到5.6並使用LOAD XML,但是我不能在存儲過程中使用這個命令。
謝謝