Skip to content

Instantly share code, notes, and snippets.

@kbilsted
Created October 18, 2017 13:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kbilsted/8854e3ab1bd0e559bb64ad2af2fed51a to your computer and use it in GitHub Desktop.
Save kbilsted/8854e3ab1bd0e559bb64ad2af2fed51a to your computer and use it in GitHub Desktop.
extract column values to files
class Program
{
static void Main(string[] args)
{
var xml = GetXmlData();
WriteToFiles(xml, "xml");
var xsd = GetXsdData();
WriteToFiles(xsd, "xsd");
}
class XmlFromDatabase
{
public string Data, Filename;
}
private static void WriteToFiles(XmlFromDatabase[] rows, string extension)
{
int i = 0;
foreach (var row in rows)
{
if (i++ % 25 == 0)
Console.Write(".");
WriteFile(extension, row);
}
Console.WriteLine();
}
private static void WriteFile(string extension, XmlFromDatabase row)
{
var path = $@"c:\temp\goo\{row.Filename}.{extension}";
if (File.Exists(path))
File.Delete(path);
var document = new XmlDocument();
document.LoadXml(row.Data);
using (XmlTextWriter w = new XmlTextWriter(path, Encoding.UTF8))
{
w.Formatting = Formatting.Indented;
document.WriteContentTo(w);
}
}
private static XmlFromDatabase[] GetXmlData()
{
using (var conn = new SqlConnection("Data Source=localhost;Initial Catalog=Staging;Integrated Security=True"))
{
var r = conn.Query<XmlFromDatabase>(@"
select XMLDATA as Data, SCHEMADATAID as Filename
from [Bar]
where SCHEMANAME = 'F15'");
return r.ToArray();
}
}
private static XmlFromDatabase[] GetXsdData()
{
using (var conn = new SqlConnection("Data Source=localhost;Initial Catalog=Staging;Integrated Security=True"))
{
var r = conn.Query<XmlFromDatabase>(@"
SELECT SchemaXsd as Data, SchemaFileName as Filename
FROM [Foo]
where SCHEMANAME = 'F15'");
return r.ToArray();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment