Created
October 18, 2017 13:17
-
-
Save kbilsted/8854e3ab1bd0e559bb64ad2af2fed51a to your computer and use it in GitHub Desktop.
extract column values to files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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