2016-07-24 2 views
0

私はデータベースとしてXMLを使用しています。私はId私のレコードのために生成したい、Idは、SQL Server ID IDのように自動インクリメントになります。XMLをデータベースとして使用する。 SQLの自動インクリメントのように私のレコードのIDを生成する方法は?

このようなidを生成するにはどうすればよいですか?

私のXMLソースは次のようになります。

data.xmlに

<?xml version="1.0" encoding="utf-8"?> 
<CATALOG> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 
    <orderByTitleDesc /> 

    <CD> 
    <LocationID>Test121</LocationID> 
    <ChangeValueFor>TestFor India</ChangeValueFor> 
    <Banner>India</Banner> 
    <DataEntry>Yes</DataEntry> 
    <LocalView>Yes</LocalView> 
    <Export>Yes</Export> 
    <View>Illions</View> 
    <ActiveView>Kentency</ActiveView> 
    <HelpFile>Finger</HelpFile> 
    <Location01>Chicken</Location01> 
    <Location02>India</Location02> 
    <Location03>USa</Location03> 
    <Location04>Africa</Location04> 
    <Location05>USa</Location05> 
    <Location06>Ellions</Location06> 
    <Location07>UK</Location07> 
    <Location08>States</Location08> 
    <Location09>OF</Location09> 
    <Server>31 March 2014 testing with font</Server> 
    <Server2>171.21.102.11</Server2> 
    <Server3>test2</Server3> 
    <CodeBase>Ser</CodeBase> 
    <CodeBase2>31 amrch testing for font</CodeBase2> 
    <CodeBase3>hellow</CodeBase3> 
    <ClassiscID>clsid:ACAC1200-0BBE-499A-A9E9-5F334DBC8E89</ClassiscID> 
    <ClassiscID2>clsid:ACAC1200-0BBE-499A-A9E9-5F334DBC8E89</ClassiscID2> 
    <ClassiscID3>this</ClassiscID3> 
    <Theme>class</Theme> 
    <Theme2>Theme2</Theme2> 
    <Theme3>Ser</Theme3> 
    <Theme4>InkIndia</Theme4> 
    <Theme5>InkIndia</Theme5> 
    <Theme6>VashnoDevi</Theme6> 
    </CD> 
</CATALOG> 

私は、テキストボックスに入力するために自分のIDを作成するユーザーを与えることはできません。ユーザーにレコードを追加して、IDがSQL Serverのように自動的に生成されるようにします。どうすればいいのですか?

お知らせください。事前にありがとう、みんな。

+0

は役立つかもしれない以下のリンクを見てみましょうか? DataSetとDataTableを使用してLinq TO XMLまたはADO.Netに変換します。 – CodeNotFound

+0

ADO .Net DataSetとデータテーブルを使用 –

+0

DataTableをコードで作成しましたか? – CodeNotFound

答えて

0

CATALOGノードにアトリビュートを追加することができます(countと呼ばれることもあります)。新しいCDノード(CATALOGに追加するレコードのタイプと見なします)を追加すると、現在のカウントを新しいレコードのIDとして使用して、それを増分することができます。

これはASP.NETタグでマークされています。つまり、これをコードする方法に応じてこのソリューションを使用してマルチスレッドの問題に遭遇する可能性があります。しかし、基本的な解決策として、これはうまくいくはずです。あなたがユニークであるいくつかのIDを作成したい場合は

1

あなたはそれが自動インクリメントはありませんが、でも、マルチスレッド環境での識別子ですとしても機能し、それがグローバル一意識別子である

System.Guid.NewGuid().ToString(); 

使用することができます。

0

あなたのサーバーにカウンタを保持し、誰かがDBにレコードを入力するたびにカウンタを増分することができます。 またはすべてのノードを読み取り、各挿入時にそれらを数えます。あなたはXMLデータを管理するために使用されているAPI

http://forums.asp.net/t/573255.aspx?Auto+Increment+unique+ID+in+XML+file

https://blogs.msdn.microsoft.com/kaevans/2003/03/28/using-autoincrement-for-an-xml-document/

関連する問題