求大神。本人想做一个选中多个表。导出成XML格式的文件解决方法
求大神。本人想做一个选中多个表。导出成XML格式的文件
public string GenerateXML(string strTableName)
{
// 根节点添加到文档中
XmlDocument doc = new XmlDocument();
XmlElement Root = doc.CreateElement("data");//主内容
doc.AppendChild(Root);
string[] arrTables = strTableName.Split(',');
for (int intI = 0; intI < arrTables.Count(); intI++)
{
XmlElement Child = doc.CreateElement("ROWSET");
XmlAttribute attr = doc.CreateAttribute("tableName");
attr.Value = arrTables[intI];
Child.Attributes.Append(attr);
Root.AppendChild(Child);
// 获取表结构
DataSet dsInfo = services.SqlHelper.ExecuteDataSet("SELECT NAME AS FIELD_NAME,LENGTH AS FIELD_LENGTH FROM syscolumns WHERE id=object_id('" + arrTables[intI] + "')");
//获取表数据
DataSet dsData = services.SqlHelper.ExecuteDataSet("SELECT * FROM " + arrTables[intI] + "");
for (int intJ = 0; intJ < dsData.Tables[0].Rows.Count; intJ++)
{
XmlElement Child1 = doc.CreateElement("ROW");
XmlAttribute attr1 = doc.CreateAttribute("action");
attr1.Value = "insert";
Child1.Attributes.Append(attr1);
Child.AppendChild(Child1);
for (int intK = 0; intK < dsInfo.Tables[0].Rows.Count; intK++)
{
XmlElement field = doc.CreateElement("Field");
XmlAttribute fieldName = doc.CreateAttribute("fieldName");//列名
XmlAttribute fieldLength = doc.CreateAttribute("maxLength");//列的长度
fieldName.Value = dsInfo.Tables[0].Rows[intK]["FIELD_NAME"].ToString();
fieldLength.Value = dsInfo.Tables[0].Rows[intK]["FIELD_LENGTH"].ToString();
field.InnerText = dsData.Tables[0].Rows[intJ][fieldName.Value].ToString();
field.Attributes.Append(fieldName);
field.Attributes.Append(fieldLength);
Child1.AppendChild(field);
}
public string GenerateXML(string strTableName)
{
// 根节点添加到文档中
XmlDocument doc = new XmlDocument();
XmlElement Root = doc.CreateElement("data");//主内容
doc.AppendChild(Root);
string[] arrTables = strTableName.Split(',');
for (int intI = 0; intI < arrTables.Count(); intI++)
{
XmlElement Child = doc.CreateElement("ROWSET");
XmlAttribute attr = doc.CreateAttribute("tableName");
attr.Value = arrTables[intI];
Child.Attributes.Append(attr);
Root.AppendChild(Child);
// 获取表结构
DataSet dsInfo = services.SqlHelper.ExecuteDataSet("SELECT NAME AS FIELD_NAME,LENGTH AS FIELD_LENGTH FROM syscolumns WHERE id=object_id('" + arrTables[intI] + "')");
//获取表数据
DataSet dsData = services.SqlHelper.ExecuteDataSet("SELECT * FROM " + arrTables[intI] + "");
for (int intJ = 0; intJ < dsData.Tables[0].Rows.Count; intJ++)
{
XmlElement Child1 = doc.CreateElement("ROW");
XmlAttribute attr1 = doc.CreateAttribute("action");
attr1.Value = "insert";
Child1.Attributes.Append(attr1);
Child.AppendChild(Child1);
for (int intK = 0; intK < dsInfo.Tables[0].Rows.Count; intK++)
{
XmlElement field = doc.CreateElement("Field");
XmlAttribute fieldName = doc.CreateAttribute("fieldName");//列名
XmlAttribute fieldLength = doc.CreateAttribute("maxLength");//列的长度
fieldName.Value = dsInfo.Tables[0].Rows[intK]["FIELD_NAME"].ToString();
fieldLength.Value = dsInfo.Tables[0].Rows[intK]["FIELD_LENGTH"].ToString();
field.InnerText = dsData.Tables[0].Rows[intJ][fieldName.Value].ToString();
field.Attributes.Append(fieldName);
field.Attributes.Append(fieldLength);
Child1.AppendChild(field);
}