2012-03-12 18 views
1

私はC#を初めて使い、データベースの学習に取り組んでいます。現在、私は次のように格納されているアイテムを持っているXML文書からデータをインポートしようとしている:私は、SQL Expressデータベース内の別の行に各データ収集を保存しようとしているXMLファイルからSQLデータベースへのXMLデータのインポート

<CityData> 
     <City>Ada</City> 
     <County>Olmsted</County> 
     <AreaCode>507</AreaCode> 
     <Founded>1900</Founded> 
     <CityWebSite>www.adacity.com</CityWebSite> 
     <Population>1200</Population> 
     <Zipcode>56996</Zipcode> 
     <ZipcodeMax>57656</ZipcodeMax> 
    </CityData> 

。私はデータベースに他の情報を格納することができましたが、XML文書でこれを行う方法はわかりません。データベースは私が書いているC#プログラムと一緒に私のマシンにローカルに保存されています。私は、XML文書スキーマのような名前のカラムを持つ新しいテーブルを持っています。私がオンラインで探しているチュートリアルは、.aspプログラム用です。誰もこれをやったことがありますか?これはC#フォームプログラムです。

+1

使用している.netのバージョンは?私はLINQがこれをかなり簡単にすることができるので頼みます。 – ptfaulkner

+0

タイトルの末尾に「C#」を追加しないでください。それがタグのためのものです。 –

+0

私はVisual C#Studio 2008をSQL Server Expressと共に使用しています。私は今LINQを見ていきます、ありがとう。 – user1143831

答えて

2

これはあなたの仕事をします。 filePath \ fileName.xmlをxmlの完全なパスに置き換えて、/dataroot/CityData(xmlに変更)をxmlごとに変更してください。また、sqlはファイルにアクセスできるはずです。

Declare @xml XML 

Select @xml = 
CONVERT(XML,bulkcolumn,2) FROM OPENROWSET(BULK 'filePath\fileName.xml',SINGLE_BLOB) AS X 

SET ARITHABORT ON 

Insert into [YourTableName] 
     (
      City,County,AreaCode,Founded,CityWebSite,[Population],Zipcode,ZipcodeMax 
     ) 

    Select 
     P.value('City[1]','VARCHAR(100)') AS City, 
     P.value('County[1]','VARCHAR(100)') AS County, 
     P.value('AreaCode[1]','VARCHAR(100)') AS AreaCode, 
     P.value('Founded[1]','VARCHAR(100)') AS Founded, 
     P.value('CityWebSite[1]','VARCHAR(100)') AS CityWebSite, 
     P.value('Population[1]','VARCHAR(100)') AS Population, 
     P.value('Zipcode[1]','VARCHAR(100)') AS Zipcode, 
     P.value('ZipcodeMax[1]','VARCHAR(100)') AS ZipcodeMax, 

    From @xml.nodes('/dataroot/CityData') PropertyFeed(P) 
+0

XMLファイルにCityData要素が1つしかない場合には、これは機能しませんか? –

+0

私の経験不足は私を後押ししているかもしれませんが、私は「宣言」にアクセスできない、私は選択を使用することができます、私は上のステートメントを使用していないと思いません。 Declare @ xml XMLを取得するために何かするべきことはありますか? – user1143831

+0

@CFL_Jeff私は、CityDataをdatarootの子ノードとして想定しています。 – Kaf

関連する問題