C#中把sql数据库的数据以树的形式写入xml文件再从xml显示到treeview上

tylichao008 2009-07-28 05:13:31
比如有一个数据库我想显示到xml上时是以下形式:
- <Authors_Table>
- <authors>
<ID>172-32-1176</ID>
<xing>wang</xing>
<name>jing</name>
<city>shanghai</city>
<order>true</order>
</authors>
- <authors>
<ID>172-32-1177</ID>
<xing>Liang</xing>
<name>Ming</name>
<city>hangzhou</city>
<order>true</order>
</authors>
</Authors_Table>

然后再显示到treeview上是下面的形式
+Authors_Table
+authors
-ID
-xing
-name
-city
-order
-ID
-xing
-name
-city
-order
+authors>
-ID
-xing
-name
-city
-order
-ID
-xing
-name
-city
-order
我把我的分全压上了。。大哥们帮帮忙啊。代码哦
...全文
174 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tylichao008 2009-07-28
  • 打赏
  • 举报
回复
功能是可以实现,谢谢了啊。
tylichao008 2009-07-28
  • 打赏
  • 举报
回复
有没有办法可以实现自动获取节点的
lsj_zrp 2009-07-28
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet("Authors_Table");
DataTable dt = new DataTable("authors");
dt.Columns.Add("ID");
dt.Columns.Add("xing");
dt.Columns.Add("name");
dt.Columns.Add("city");
dt.Columns.Add("order");

DataRow dr = dt.NewRow();
dr[0] = "172-32-1176";
dr[1] = "wang";
dr[2] = "jing";
dr[3] = "shanghai";
dr[4] = "true";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr[0] = "172-32-1176";
dr[1] = "wang";
dr[2] = "jing";
dr[3] = "shanghai";
dr[4] = "true";
dt.Rows.Add(dr);
ds.Tables.Add(dt);

ds.WriteXml("1.xml");

TreeNode treePNode = new TreeNode();
treePNode.Text = ds.DataSetName;
this.treeView1.Nodes.Add(treePNode);

for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode treeNode = new TreeNode();
treeNode.Text = dt.TableName;
this.treeView1.Nodes.Add(treeNode);
InitTreeNode(dt.Rows[i], treeNode,dt.Columns.Count);
}
}

private void InitTreeNode(DataRow dr, TreeNode treePNode,int iColumnsCount)
{
for(int i=0;i<iColumnsCount;i++)
{
TreeNode treeNode = new TreeNode();
treeNode.Text = dr[i].ToString();
treePNode.Nodes.Add(treeNode);
}
}
tylichao008 2009-07-28
  • 打赏
  • 举报
回复
这两个功能是要分开的。因为要实现客户端与服务器端的响应。所以先实现这一步。上面大哥能不能具体说下。我的代码 private void button1_Click(object sender, EventArgs e)
{
SqlConnection thisConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\实验室\匡老师项目\Date\GPRSDB_Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlDataAdapter thisAdapter = new SqlDataAdapter( "SELECT Terminal.*, [Right].*, Address.*, Client.*, Data.*, Parameter.*, T_P.* FROM Parameter INNER JOIN Data ON Parameter.PID = Data.PID INNER JOIN [Right] ON Data.TID = [Right].TID INNER JOIN T_P ON Parameter.PID = T_P.PID CROSS JOIN Address INNER JOIN Terminal ON Address.AID = Terminal.AID CROSS JOIN Client",thisConnection );
DataSet thisDataSet = new DataSet();
thisAdapter.Fill(thisDataSet,"Terminal.*, [Right].*, Address.*, Client.*, Data.*, Parameter.*, T_P.*");
thisDataSet.WriteXml(@"D:\\实验室\\匡老师项目\\example.xml");
Console.WriteLine(@"Successfully wrote XML out put to file :D:\实验室\匡老师项目");
if (DialogResult.OK==MessageBox.Show("是否确定导出数据库文件到xml","",MessageBoxButtons.OKCancel))
{
Application.Exit();
}


}
好像是只实现了提取和写到xml文档中。但没有形成树。并不是我想要的xml文档
guojun850103 2009-07-28
  • 打赏
  • 举报
回复
直接遍历,显示成树,生成xml再读不是很麻烦了吗?

111,124

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧