XML 파일에서 MySQL 테이블로 데이터를 전송하는 가장 빠른 솔루션이 필요합니다. 나는 다음과 같이 내부에 여러 테이블과 XML 파일이 : XML to C#
<?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 내
, 난 표 1 및 표 2에 대한 MySQL의 DB를에서 DataTables 및 TableAdapters와 데이터 소스가 있습니다. 데이터 유형 내가 예외가 다른 경우 데이터 소스에 ( 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);
}
}
을하지만 난이 큰 문제를 가지고이 코드를 실행 한 후 : 내 목표는 XML 파일을 읽고이 이러한 DataTables에 직접 데이터를 전달하는 것이 었습니다 필드는 DateTime이고 XML 필드는 문자열로 읽습니다.) 2. TableAdapter.Update() 호출은 데이터를 db에 저장하는 데 오랜 시간이 걸립니다 (15k 행은 10-15 분 소요)
그래서 ... 내 질문은 Can입니다. 누군가 나에게이 두 가지 문제를 해결하거나 mysql에 XML 데이터를 저장하는 가장 빠르고 최상의 방법이 무엇인지에 대한 지침을 알려주십시오.
참고 : - VS2010 및 MySQL 5.1을 사용하고 있습니다. - XML 파일을 외부 소스에서로드해야합니다. - XML에는 xmlns가 있지만 단순화를 위해 여기서는 생략되었습니다. - MySQL을 5.6으로 업그레이드하고 LOAD XML을 사용했지만 저장 프로 시저 내에서이 명령을 사용할 수 없습니다.
감사합니다.