0

SQL Server データベース テーブルに XML データ型のフィールドがあります。

提案された形式は次のとおりです。

<remarks>
    <remark>
        <author>Patrick Keane</author>
        <date>18/12/2012 10:06</date>
        <content>My content Here</content>
    </remark>
    <remark>
        <author>Joe Blogs</author>
        <date>19/12/2012 11:32</date>
        <content>My content Here</content>
    </remark>
    ......
    ......
</remarks>

ASP.NET (C#) を使用して、フィールドに新しいエントリを追加したいと考えています (まだエントリがある場合とない場合があります)。また、最後のエントリ (.aspx ページに表示するため) とエントリの完全なリスト (.xml ページに表示するため) を取得できるようにしたいと考えています。

私は情報/チュートリアルを探していましたが、見つけたもののほとんどはデータのエクスポートと XML への変換です。関連するチュートリアルを教えてくれる人や、情報を提供してくれる人はいますか? タイ

4

2 に答える 2

0

挿入するには:

追加する xml をストアド プロシージャにパラメーターとして渡し、次のクエリを試してください。

update [dbo].[TableName]
  set remark.modify ('insert sql:variable("@varibleName") as last into (/remarks/)[1]') WHERE [Condition]
于 2012-12-18T12:29:58.910 に答える
0

獲得したデータを保持するクラスを使用して、xml にエクスポート (およびインポート) できます。
を使用し[Serializable]て、クラスを xml エクスポートで使用できるようにします。たとえば、このクラスがある場合:

[Serializable]
public class MyClassThatKeepTheData
{
    public List<int> cListWithValues;

    public int Value1;

    public int Value2;
}

次に、XmlSerializer を使用して、次のように XML (およびその逆) に変換できます。

public static string ObjectToXML(Type type, object obby)
{
    XmlSerializer ser = new XmlSerializer(type);
    using (System.IO.MemoryStream stm = new System.IO.MemoryStream())
    {
        //serialize to a memory stream
        ser.Serialize(stm, obby);
        //reset to beginning so we can read it.  
        stm.Position = 0;
        //Convert a string. 
        using (System.IO.StreamReader stmReader = new System.IO.StreamReader(stm))
        {
            string xmlData = stmReader.ReadToEnd();
            return xmlData;
        }
    }
}

public static object XmlToObject(Type type, string xml)
{
    object oOut = null;    

    if (xml != null && xml.Length > 0)
    {
        System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(type);

        using (System.IO.StringReader sReader = new System.IO.StringReader(xml))
        {
            oOut = serializer.Deserialize(sReader);

            sReader.Close();
        }
    }

    return oOut;
}

次のように XML に変換します。

MyClassThatKeepTheData cTheObject = new MyClassThatKeepTheData();

ObjectToXML(typeof(MyClassThatKeepTheData), cTheObject)

相対: ビューステートのクラスを最適化する方法

また、protobuf-netはXMLではありませんが、はるかに高速で同じ作業を行うこともお勧めします

于 2012-12-18T12:31:40.563 に答える