c#2005 mssql2005想实现如下要求;
例如存储对象实例进入数据库的xml字段。
然后通过c#还能读回来。最好在数据库端还能搜索对象成员的值。

解决方案 »

  1.   

    什么意思?
    对象序列化成XML吗?
    [Serializable]
    对象System.Xml.Serialization.XmlSerializer可以通过Serialize方法序列化,Deserialize反序列化,但是集合要注意,一定要实现ICollection, IEnumerable如自定义的Dictionary要实现以上接口。
      

  2.   

    把这些数据储存在object表的ObjectXML列里
    <objects>
       <object id="1" name="name1">1</object>  
       <object id="2" name="name2">2</object>
       <object id="3" name="name3">3</object>
    </objects>
    sql中可以这样取id=2的值操作:
    declare @myid nvarchar(20)
    set @myid = '2'select ObjectXML.value('(/objects/object[@id=sql:variable("@myid")]/name)[1]','nvarchar(200)') from object
    c#中也可以操作xml:
    string myString = dt.Rows[0][0].ToString();//dt是从数据库取的数据集
    XmlDocument myXmlD = new XmlDocument();
    myXmlD.LoadXml(myString);
    TextBox1.Text = myXmlD.SelectSingleNode("/objects/object[@id='2']/text()").Value;
      

  3.   

    直接在数据库中用sp_xml_preparedocumentEXEC sp_xml_preparedocument @hDoc OUTPUT,@strXml 
    SELECT @Grade = GradeRes FROM OpenXml(@hDoc,'/Student/Count',1) WITH (GradeRes VARCHAR(30))