SqlBulkCopy
을 사용하여 XML 파일을 가져 오는 중 프로 플럼을 사용하고 있습니다.SqlBulkCopy - XML 데이터를 SQL 테이블로 가져 오기
<root>
<Automobiles>
<Car Id="1" Name="SomeModel1"/>
<Car Id="2" Name="SomeModel2"/>
<Car Id="3" Name="SomeModel2"/>
</Automobiles>
</root>
: 여기
Int Id
varchar Name
내 코드입니다 : XML 파일은 다음과 같습니다
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("autolist.xml"));
SqlConnection connection = new SqlConnection(
ConfigurationManager.ConnectionStrings["Connection"].ToString());
SqlBulkCopy sbc = new SqlBulkCopy(connection);
sbc.DestinationTableName = "Automobiles";
foreach (DataColumn dc in ds.Tables[0].Columns)
{
sbc.ColumnMappings.Add(dc.Caption, dc.Caption);
}
connection.Open();
sbc.WriteToServer(ds.Tables[0]);
connection.Close();
이 난 단지는 아니지만 때문에 Id
의 이름을 가져올 수의 속성과 DataSet
에는 하나의 열만 포함됩니다. 속성을 열에 매핑하는 방법이 있습니까?
DataSet
대신 XmlDocument
을 사용하는 것이 더 좋을까요?
내가 잘못 생각합니다. 데이터 세트는 Automobiles 요소 주위에 몇 가지 루트 요소가 있고 데이터 세트 테이블에 열이 없으면 상당히 다릅니다. 그것은 루트 요소없이 잘 작동합니다.
코드를 가져 오려고 시도했지만 문제가 될 수 없도록 DateSet에 2 열 (ID 및 이름)이 있습니다. 매핑에 문제가 생길 수 있습니까? –
의견을 주셔서 감사합니다. 내 매핑을 확인하겠습니다 – ilkin