SqlBulkCopy
を使用してXMLファイルをインポートする際にプロンプトが表示されます。SqlBulkCopy - SQLテーブルへのXMLデータのインポート
<root>
<Automobiles>
<Car Id="1" Name="SomeModel1"/>
<Car Id="2" Name="SomeModel2"/>
<Car Id="3" Name="SomeModel2"/>
</Automobiles>
</root>
私のテーブルには、次のようになります:ここで
Int Id
varchar Name
が私のコードです:
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
をインポートしたができなかったXMLファイルは、次のようになりますDataSet
には1つの列しか含まれていません。列に属性をマップする方法はありますか?
DataSet
の代わりにXmlDocument
を使用するとよいでしょうか?
私は何が間違っていると思います。 Automobiles要素の周りにいくつかのルート要素があり、データセットテーブルに列がない場合、データセットはかなり異なっています。ルート要素なしでうまく動作します。
私はあなたのコードをインポートしようとしましたが、DateSetは2つの列(IdとName)を持っていますので問題にはなりません。あなたのマッピングに何か問題が起こることはありますか? –
コメントありがとうございます。私は私のマッピングを確認します – ilkin