Независимо от того, что вы хотите сделать с xml впоследствии, самый простой способ сделать xml из вашей таблицы - это сериализовать его:
Создать класс C #, подобныйваши 10 столбцов (читайте в Linq To Sql или Entity Framework, чтобы позволить Visual Studio сделать тяжелую работу за вас).
Сделайте ваш класс XML Serializable.Если вы делаете «Простой старый объект C #» (иногда называемый POCO), вам не нужно ничего делать.В Linq to Sql установите режим сериализации Datamodel на однонаправленный.
Получите ваши данные в переменных.С Linq To ... это так же просто, как
var db = new MyRepository();
var myList = from r in db.MyTableRecords
where r.someField == 'somevalue'
select r;
В противном случае вы сами пытаетесь получить свои данные, используя SqlConnection, SqlCommand и SqlDataReader:
var myList = new List<MyClass>();
using (var conn = new SqlConnection(MyConnectionString))
{
conn.Open();
using(var cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT ([Field1], ... [Field10]) FROM MyTable";
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
myList.Add(new MyClass()
{
Field1 = rdr[0],
...
Field10 = rdr[9]
});
}
}
}
}
- Сериализуйте его:
StringBuilder sb = new StringBuilder();
using (var sw = new StringWriter(sb))
{
XmlSerializer xs = new XmlSerializer(typeof(List<MyClass>));
xs.Serialize(sw, myList);
}
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(sb.ToString());
Presto!Документ XML с вашими данными.Использование Linq для Sql это довольно быстро и безболезненно.После того, как вы поймете это и столкнетесь с его ограничениями, попробуйте Entity Framework и научитесь создавать свои собственные классы, используя T4.