DataTable에 쿼리를 실행하고 데이터를 저장하는 프로그램이 있습니다. 그런 다음 사용자가 해당 DataTable.WriteXML을 저장할 수 있습니다. 내가 가지고있는 문제는 다른 파일 이름 (XML 파일)을 다른 DataTable으로 읽는 것을 허용하고 그것을 허용하지 않는다는 것입니다. "데이터 테이블에 '결과 테이블로드 중 오류 :'가져 오기 테이블 '이 소스의 DataTable과 일치하지 않습니다."WriteXML, ReadXML 테이블 이름 문제
이제 XML에 다른 테이블 이름이 들어 있다는 메시지가 표시됩니다. DataTable 나는 그것으로 ReadXML하려고합니다. TableName 속성을 공백으로 설정하려고 시도했지만 아무런 차이가 없습니다.
그래서 제 질문은 다른 사람들이이 문제를 어떻게 해결할 수 있느냐입니다. 표준 DataTable.WriteXML (파일 이름) 및 DataTable.ReadXML 메서드 호출을 사용하고 있습니다. 일부 디자인 문제로 인해 - 데이터를 내보내는 데 사용 된 것과 다른 이름으로 가져온 DataTable을 가져야합니다.
이 문제를 해결할 데이터 테이블의 데이터를 쓰고 읽는 다른 방법이 있습니까?
예제 코드 - 문제 표시 로드 - 두 테이블을 만듭니다. 하나는 다른 가져 오기 내보내기로 이름이 지정된 것입니다. 내보내기를위한 구조체를 만들고 10 개의 레코드로 채 웁니다.
private void Form_Main_Load(object sender, EventArgs e)
{
ExportTable = new DataTable("Export");
ImportTable = new DataTable("Import");
ExportTable.Columns.Add("ID", Type.GetType("System.Int32"));
ExportTable.Columns.Add("Name", Type.GetType("System.String"));
ExportTable.Columns.Add("Amount", Type.GetType("System.Int32"));
// Populate the first one
DataRow workRow;
for (int i = 0; i <= 9; i++)
{
workRow = ExportTable.NewRow();
workRow[0] = i;
workRow[1] = "CustName" + i.ToString();
workRow[2] = i;
ExportTable.Rows.Add(workRow);
}
}
그런 다음 두 개의 버튼을 만듭니다. 하나는 데이터를 내보내고 다른 하나는 데이터를 가져 오기위한 버튼입니다.
private void button_Export_Click(object sender, EventArgs e)
{
ExportTable.WriteXml("c:\\Temp\\TableOut.xml");
}
private void button_Import_Click(object sender, EventArgs e)
{
ImportTable.ReadXmlSchema("c:\\Temp\\TableOut.xml");
ImportTable.ReadXml("c:\\Temp\\TableOut.xml");
}
데이터를 내 보낸 다음 가져 오기 버튼을 클릭하십시오. 그렇게하면 - "DataTable 'Import'가 소스에있는 DataTable과 일치하지 않습니다."라는 오류 메시지가 나타납니다. XML이 XML에 임베드 된 내보내기 테이블 이름을 가지고 있기 때문에 이것이 실현되었습니다. 필자의 경우 데이터를 다른 이름의 DataTable로 가져와야합니다. 과거에 다른 사람들이 어떻게 처리했는지 궁금합니다. XML에서 수동으로 이름을 변경 했습니까? 일시적으로 데이터 테이블 이름을 변경 했습니까? 또는 DataTable의 READXML 메서드를 사용하려는이 이슈를 둘러싼 또 다른 좋은 방법이 있습니까?
샘플 코드는 이제 기록했다. 이 문제를 해결하는 방법에 대한 의견이 있으십니까? – user7003495