using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
public partial class user_group : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs ea)
{
string connetionString = "Data Source=*****;Initial Catalog=dbname;User ID=****;Password=****";
SqlConnection cnn = new SqlConnection(connetionString);
cnn.Open();
//Console.WriteLine("ServerVersion: {0}", cnn.ServerVersion);
//Console.WriteLine("State: {0}", cnn.State);
string sqlGroup = "SELECT DISTINCT [db_owner].[Group].[GroupID],[db_owner].[Group].[name] FROM [db_owner].[Group]";
SqlCommand sqlGroupCmd = new SqlCommand(sqlGroup, cnn);
SqlDataAdapter groupAdpt = new SqlDataAdapter(sqlGroupCmd);
DataTable groupDataTable = new DataTable();
int noOfGroup = groupAdpt.Fill(groupDataTable);
//Response.Write(noOfGroup);
XmlDocument ObjXML = new XmlDocument();
XmlElement menu = ObjXML.CreateElement("menu");//create xml called 'menu'
ObjXML.AppendChild(menu);// insert root node (root node without attribute)
//menu.SetAttribute("label", null, "User Group");
//外圈拿到 Group ID Group Name
if (noOfGroup > 0)
{
foreach (DataRow groupDr in groupDataTable.Rows)
{
String str = groupDr[0].ToString();
int groupID = int.Parse(str);
//Response.Write(str);
XmlElement node = ObjXML.CreateElement("node");//create child node
menu.AppendChild(node);// insert child node
node.SetAttribute("label", null, groupDr[1].ToString());//set child node attribute Group Name
//內圈拿到每個group id對應的tracker id, tracker name,
string sqlText = "SELECT [db_owner].[GroupTracker].[TrackerID],[db_owner].[TrackerUse].[name] FROM [db_owner].[GroupTracker],[db_owner].[TrackerUse] WHERE [db_owner].[GroupTracker].[GroupID] = " + str + " AND [db_owner].[GroupTracker].[TrackerID] = [db_owner].[TrackerUse].[TrackerID]";
//string sqlText = "SELECT [db_owner].[TrackerUse].[TrackerID] FROM [Tracker].[db_owner].[TrackerUse]";
SqlCommand sqlCmd = new SqlCommand(sqlText, cnn);
SqlDataAdapter adpt = new SqlDataAdapter(sqlCmd);
DataTable dataTable = new DataTable();
// Fill the data table with select statement's query results:
int recordsAffected = adpt.Fill(dataTable);
//Response.Write(recordsAffected + "
");
if (recordsAffected > 0)
{
foreach (DataRow dr in dataTable.Rows)
{
XmlElement innernode = ObjXML.CreateElement("node");//create child node
node.AppendChild(innernode);// insert child node
innernode.SetAttribute("label", null, dr[1].ToString());//set child node attribute
innernode.SetAttribute("link", null, dr[0].ToString());//set child node attribute
}
}
}
XmlDeclaration xmldecl;
xmldecl = ObjXML.CreateXmlDeclaration("1.0", null, null);
xmldecl.Encoding = "utf-8";
ObjXML.InsertBefore(xmldecl, menu);
string myxml = ObjXML.InnerXml.ToString();
Response.Write(myxml);//write xml
if (cnn.State != ConnectionState.Closed)
{
cnn.Close();
}
}
else {
Response.Write("SQL Empty!!");
}
}
}
2010年8月5日 星期四
ASP.NET[C#] SQL撈資料轉XML格式直接輸出
訂閱:
張貼留言 (Atom)

沒有留言:
張貼留言