我正在使用Visual Studio 2010和SQL Server 2008.我需要创建一个类似于:
的XML文件 <cat>
<name> "Categories"</name>
<link> "link"</link>
</cat>
应从数据库中添加Categories
和link
值。
我已经尝试了一切,但我无法让它发挥作用。我是否必须在ASP中创建一个XML文件来执行此操作?
这些值在同一个表中,但表中还有其他列。
我的代码看起来像这样:
SqlCommand sqlcmd = new SqlCommand();
//sqlcmd.CommandText = "Select * from Categories";
DataSet ds = new DataSet();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("Select * from Categories", "Data Source=something;Initial Catalog=My Database;Integrated Security=True");
da.Fill(ds);
int rows;
rows = ds.Tables[0].Rows.Count;
int i;
for (i = 0; i <= rows - 1; i++)
{
string Categories = ds.Tables[0].Rows[i].ItemArray[0].ToString();
string address = "https://www.something.com/";
string link = address + ds.Tables[0].Rows[i].ItemArray[1].ToString();
}
ds.WriteXml(@"c:\output.xml", XmlWriteMode.WriteSchema);
有人可以给我一个详细解决这个问题的方法。
谢谢
答案 0 :(得分:1)
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.CommandText = "Select * from Categories";
DataSet ds = new DataSet();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("Select * from Categories", "Data Source=something;Initial Catalog=My Database;Integrated Security=True");
da.Fill(ds);
int rows;
rows = ds.Tables[0].Rows.Count;
int i;
xmlwr.WriteStartElement("Cat");
for (i = 0; i <= rows - 1; i++)
{
xmlwr.WriteStartElement("name");
xmlwr.xmlwr.WriteString(ds.Tables[0].Rows[i].ItemArray[0].ToString());
xmlwr.WriteEndElement;
xmlwr.WriteStartElement("link");
xmlwr.xmlwr.WriteString(ds.Tables[0].Rows[i].ItemArray[1].ToString());
xmlwr.WriteEndElement;
}
xmlwr.WriteEndElement;
ds.WriteXml(@"c:\output.xml", XmlWriteMode.WriteSchema);