Tuesday, December 26, 2017

Bulk Excel Upload || Convert Dataset to XML in c# || Store XML Data in Table in Sqlserver | | Xml Performance Issue

You can use ds.WriteXml, but that will require you to have a Stream to put the output into. If you want the output in a string, try this extension method:
public static class Extensions
{
    public static string ToXml(this DataSet ds)
    {
        using (var memoryStream = new MemoryStream())
        {
            using (TextWriter streamWriter = new StreamWriter(memoryStream))
            {
                var xmlSerializer = new XmlSerializer(typeof(DataSet));
                xmlSerializer.Serialize(streamWriter, ds);
                return Encoding.UTF8.GetString(memoryStream.ToArray());
            }
        }
    }
}
USAGE:
var xmlString = ds.ToXml();
// OR
Response.Write(ds.ToXml());
                                OR
Simply use Dataset.getXml():
doc.LoadXml(ds.GetXml());
                        In StoredProcedure
DECLARE @XMLData XML  
SET @XMLData = '<STUDENTS>  
    <STUDENT>  
        <StudentID>1</StudentID>  
        <Name>John Smith</Name>  
        <Marks>200</Marks>  
    </STUDENT>  
    <STUDENT>  
        <StudentID>2</StudentID>  
        <Name>Mark Johnson</Name>  
        <Marks>300</Marks>  
    </STUDENT>  
    <STUDENT>  
        <StudentID>3</StudentID>  
        <Name>Nitin Tyagi</Name>  
        <Marks>400</Marks>  
    </STUDENT>  
</STUDENTS>'  
  
  
SELECT StudentID = Node.Data.value('(StudentID/text())[1]', 'INT'), 
[Name] = Node.Data.value('(Name/text())[1]', 'VARCHAR(MAX)'), 
[Marks] = Node.Data.value('(Marks/text())[1]', 'INT')  
  
FROM @XMLData.nodes('/STUDENTS/STUDENT') Node(Data)  

No comments:

Post a Comment

javascript Filter/index off

 var family = [{"name":"Jack",  "age": 26},               {"name":"Jill",  "age"...