您的位置:首页 > 数据库

SQl 数据转化为 XML 格式

2011-03-11 10:05 369 查看
考研成绩下来,很是无奈。只好等国家线。最近随便找了份工作,因为工作的原因需要把一个数据库中的一张表转化为XML. 本来sql server 2000 以后都有FOR XML 的功能是可以直接用的,但是无奈写到代码里就有问题。所以自己研究下写了一个。下面是几个主要函数,整体代码会发送到我的下载中。大家免费下载。

/// <summary>
/// read a datatable from a sql database and translate to xml format.
/// </summary>
private void SqlDataTOXmlFile(string path)
{
string connectString = string.Format(@"Data Source={0};User ID={1};Password={2};database={3};Connect Timeout=10000;", @textInstance.Text, textUserName.Text, textPwd.Text, textDB.Text);
string sqlCommandText = string.Format(@"SELECT * FROM {0}", textTableName.Text);
SqlConnection sqlConnection = new SqlConnection(connectString);
SqlDataAdapter sDataAdapter = new SqlDataAdapter(sqlCommandText, sqlConnection);
DataTable dt = new DataTable();
sDataAdapter.Fill(dt);
CreateXml(DataTableToXml(dt), path);
}
/// <summary>
/// Read a DB table from database and translate to xml and return.
/// </summary>
/// <returns></returns>
private string DataTableToXml(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<root>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendLine("<rows>");
for (int j = 0; j < dt.Columns.Count; j++)
{
sb.AppendLine("<"+dt.Columns[j].ColumnName+">"+dt.Rows[i][j].ToString()+"</"+dt.Columns[j].ColumnName+">");
}
sb.AppendLine("<rows>");
}
sb.AppendLine("</root>");
return sb.ToString();
}
/// <summary>
/// Write a xml file to a specfic path
/// </summary>
/// <param name="content"></param>
/// <param name="path"></param>
private void CreateXml(string content, string path)
{
StreamWriter sw = new StreamWriter(path);
sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");
sw.WriteLine(content);
sw.Close();
sw.Dispose();
}


下面是工具图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: