c#,怎样将指定数据库的所有表的关系用XML文件输出? 数据库中的所有表之间是用主键,外键联系起来,怎样可以将这些关系提取出来用XML文件表示? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关系是多对多的的图,XML是分层的树,不好表示吧 我也不知道,我们做毕业设计,那老师叫我们这样做。网站上也没见谁这样做过。两张表的可以表示吗?比如Northwind数据库里的Order Details与Orders表的关系? using System;using System.Collections.Generic;using System.Text;using System.Xml;using ShootSearch.Spider.Http;using System.IO;using ShootSearch.Common;using System.Collections;using System.Data;using System.Windows.Forms;namespace ShootSearch.Spider{ /// <summary> /// /// </summary> public class Util { #region 加载任务列表 /// <summary> /// 加载任务列表 /// </summary> /// <returns></returns> public static URL[] LoadTasks() { string taskList = Tools.StartPath + "\\Settings\\Task.xml"; if (!File.Exists(taskList)) return null; XmlDocument doc = new XmlDocument(); try { doc.Load(taskList); XmlNodeList list = doc.SelectNodes("ShootSearch/Task/Item"); List<URL> urls = new List<URL>(); foreach (XmlNode node in list) { URL url = new URL(); url.Url = new Uri(XMLSettings.GetXmlNodeText(node, "", "")); url.Encode = Encoding.GetEncoding(XMLSettings.GetXmlNodeText(node, "Encode", "")); url.LocalPath = XMLSettings.GetXmlNodeText(node, "LocalPath", ""); url.IndexFile = XMLSettings.GetXmlNodeText(node, "IndexFile", ""); urls.Add(url); } return urls.ToArray(); } catch { } return null; } #endregion #region 保存任务列表 /// <summary> /// 保存任务列表 /// </summary> /// <param name="urls"></param> public static void SaveTask(URL [] urls) { string taskList = Tools.StartPath + "\\Settings\\Task.xml"; try { File.Delete(taskList); } catch { } XmlTextWriter xtw = new XmlTextWriter(taskList, Encoding.UTF8); xtw.WriteRaw("<?xml version=\"1.0\" encoding=\"utf-8\" ?>" ); xtw.WriteRaw("\r\n"); xtw.WriteStartElement("ShootSearch"); xtw.WriteStartElement("Task"); foreach(URL url in urls) { xtw.WriteRaw("\r\n"); xtw.WriteRaw(XMLSettings.NewTag("Item", url.Url.ToString(), "Encode", url.Encode.HeaderName, "LocalPath", url.LocalPath, "IndexFile", url.IndexFile)); //xtw.WriteElementString("Item", url.Url.ToString()); ////xtw.WriteAttributeString("Url", url.Url.ToString()); //xtw.WriteAttributeString("Encode", url.Encode.HeaderName); //xtw.WriteAttributeString("LocalPath", url.LocalPath); //xtw.WriteAttributeString("IndexFile", url.IndexFile); xtw.WriteRaw("\r\n"); } xtw.Close(); } #endregion #region 将Content Type列表转换为哈希表,以方便搜索 /// <summary> /// 将Content Type列表转换为哈希表,以方便搜索 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static Hashtable ConvertDataTable2Hashtable(DataTable dt) { Hashtable ht = new Hashtable(); string str = ""; for (int i = 0; i < dt.Rows.Count; i++) { str = dt.Rows[i][1].ToString(); if (!ht.ContainsKey(str) && str != "*/*") { ht.Add(str, ""); } } return ht; } #endregion }} C#:将窗体变大变小窗体? C#构造函数一题,求解 C#问题 高手请进,请问如何用c#程序修改程序的用户级别?!!谢谢 关于关闭和打开窗口的问题 怎样用C#,转到dos界面? C# 串口通信datareceive事件的问题 來看看老朋友﹐順便帶上几個問題為難一下以表心意﹐祝大家十一節日快樂﹗﹗﹗﹗﹗﹗﹗﹗﹗哇哈哈哈。。。。 200分,200分求QQ2009自定义皮肤功能如何实现,c# VMware Fusion虚拟机里的C#程序如何获取宿主的硬件信息? c# Socket编程的一些疑惑 关于一些c#,winforms,asp.net的一些概念!请大家说说!
using System.Collections.Generic;
using System.Text;
using System.Xml;
using ShootSearch.Spider.Http;
using System.IO;
using ShootSearch.Common;
using System.Collections;
using System.Data;
using System.Windows.Forms;namespace ShootSearch.Spider
{
/// <summary>
///
/// </summary>
public class Util
{
#region 加载任务列表
/// <summary>
/// 加载任务列表
/// </summary>
/// <returns></returns>
public static URL[] LoadTasks()
{
string taskList = Tools.StartPath + "\\Settings\\Task.xml";
if (!File.Exists(taskList)) return null;
XmlDocument doc = new XmlDocument();
try
{
doc.Load(taskList);
XmlNodeList list = doc.SelectNodes("ShootSearch/Task/Item");
List<URL> urls = new List<URL>();
foreach (XmlNode node in list)
{
URL url = new URL();
url.Url = new Uri(XMLSettings.GetXmlNodeText(node, "", ""));
url.Encode = Encoding.GetEncoding(XMLSettings.GetXmlNodeText(node, "Encode", ""));
url.LocalPath = XMLSettings.GetXmlNodeText(node, "LocalPath", "");
url.IndexFile = XMLSettings.GetXmlNodeText(node, "IndexFile", "");
urls.Add(url);
}
return urls.ToArray();
}
catch
{
}
return null; }
#endregion
#region 保存任务列表
/// <summary>
/// 保存任务列表
/// </summary>
/// <param name="urls"></param>
public static void SaveTask(URL [] urls)
{
string taskList = Tools.StartPath + "\\Settings\\Task.xml";
try
{
File.Delete(taskList);
}
catch { }
XmlTextWriter xtw = new XmlTextWriter(taskList, Encoding.UTF8);
xtw.WriteRaw("<?xml version=\"1.0\" encoding=\"utf-8\" ?>" );
xtw.WriteRaw("\r\n");
xtw.WriteStartElement("ShootSearch");
xtw.WriteStartElement("Task");
foreach(URL url in urls)
{
xtw.WriteRaw("\r\n"); xtw.WriteRaw(XMLSettings.NewTag("Item", url.Url.ToString(),
"Encode", url.Encode.HeaderName,
"LocalPath", url.LocalPath,
"IndexFile", url.IndexFile));
//xtw.WriteElementString("Item", url.Url.ToString());
////xtw.WriteAttributeString("Url", url.Url.ToString());
//xtw.WriteAttributeString("Encode", url.Encode.HeaderName);
//xtw.WriteAttributeString("LocalPath", url.LocalPath);
//xtw.WriteAttributeString("IndexFile", url.IndexFile);
xtw.WriteRaw("\r\n");
}
xtw.Close();
} #endregion #region 将Content Type列表转换为哈希表,以方便搜索
/// <summary>
/// 将Content Type列表转换为哈希表,以方便搜索
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static Hashtable ConvertDataTable2Hashtable(DataTable dt)
{
Hashtable ht = new Hashtable();
string str = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
str = dt.Rows[i][1].ToString();
if (!ht.ContainsKey(str) && str != "*/*")
{
ht.Add(str, "");
}
}
return ht;
}
#endregion }
}