问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何把数据库中类型为XML的列查询出来并以表格显示?

发布网友 发布时间:2022-04-21 19:36

我来回答

2个回答

热心网友 时间:2022-04-10 22:02

最近刚刚做这个:
public void BindData()
{

DataTable dt = InitTableForBindData();

if (ControlAppType == 2)
{
gv_RawDataList.DataSource = null;
gv_RawDataList.DataBind();

for (int int_row = gv_RawDataList.Columns.Count - 1; int_row > 2; int_row--)
{
gv_RawDataList.Columns.RemoveAt(int_row);
}
pnlSelectPhotos.Visible = false;
pnlSpecial.Visible = false;

//dt = BaseClass.GridViewToTable2.Instance.GridViewToDataTable(gv_RawDataList);
}

EditionWCF.t_edition t_Edition = editionClient.GetEditionById(EditionID);
List<Photo> PhotoList = new List<Photo>();
List<Special> SpecialList = new List<Special>();

//构造table的列
if ((t_Edition != null) && (t_Edition.ContentXML != null))
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(t_Edition.ContentXML.ToString());
XmlNode nodeRoot = doc.SelectSingleNode(@"Edition/Pages");

foreach (XmlNode node_Page in nodeRoot)
{
if (node_Page.Attributes[0].Value.ToString() == PageNum.ToString())
{
XmlNode node_Items = node_Page.SelectSingleNode(@"Items");
foreach (XmlNode node_item in node_Items)
{
if (node_item.Name == "Item")
{
XmlNode node_RawdataColumns = node_item.SelectSingleNode(@"RawdataColumns");
foreach (XmlNode node_RawdataColumn in node_RawdataColumns)
{
try
{
dt.Columns.Add(node_RawdataColumn.Attributes[0].Value, typeof(string));
}
catch { }
}

XmlNode node_UserColumns = node_item.SelectSingleNode(@"UserColumns");
foreach (XmlNode node_UserColumn in node_UserColumns)
{
try
{
dt.Columns.Add(node_UserColumn.Attributes[0].Value, typeof(string));
hidenUserDataCount.Value = (int.Parse(hidenUserDataCount.Value) + 1).ToString();
}
catch { }
}

}
}
}
}

}

///装载数据
if ((t_Edition != null) && (t_Edition.ContentXML != null))
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(t_Edition.ContentXML.ToString());
XmlNode nodeRoot = doc.SelectSingleNode(@"Edition/Pages");

foreach (XmlNode node_Page in nodeRoot)
{
if (node_Page.Attributes[0].Value.ToString() == PageNum.ToString())
{
XmlNode node_Items = node_Page.SelectSingleNode(@"Items");

foreach (XmlNode node_item in node_Items)
{
if (node_item.Name == "Item")
{

DataRow dr = dt.NewRow();
dr["SKU"] = "<nobr>" + Server.HtmlDecode(node_item.Attributes["SKU"].Value) + "</nobr>";
dr["Name"] = "<nobr>" + Server.HtmlDecode(node_item.Attributes["Name"].Value) + "</nobr>";
dr["Description"] = "<nobr>" + Server.HtmlDecode(node_item.Attributes["Description"].Value) + "</nobr>";
//dr["PriceRef"] = "<nobr>" + Server.HtmlDecode(node_item.Attributes["PriceRef"].Value) + "</nobr>";

XmlNode node_RawdataColumns = node_item.SelectSingleNode(@"RawdataColumns");
foreach (XmlNode node_RawdataColumn in node_RawdataColumns)
{
dr[node_RawdataColumn.Attributes[0].Value] = Server.HtmlDecode(node_RawdataColumn.InnerXml);
}

XmlNode node_UserColumns = node_item.SelectSingleNode(@"UserColumns");
foreach (XmlNode node_UserColumn in node_UserColumns)
{
dr[node_UserColumn.Attributes[0].Value] = Server.HtmlDecode(node_UserColumn.SelectSingleNode("Value").InnerXml);
}

XmlNode node_Photolinks = node_item.SelectSingleNode(@"Photolinks");
foreach (XmlNode node_Photolink in node_Photolinks)
{
Photo p = new Photo();
p.SKU = dr["SKU"].ToString();
p.PhotoID = "0";
p.PhotoPath = node_Photolink.InnerXml;
p.PhotoName = "0";
PhotoList.Add(p);
}

XmlNode node_Specials = node_item.SelectSingleNode(@"Specials");
foreach (XmlNode node_Special in node_Specials)
{
Special p = new Special();
p.SKU = dr["SKU"].ToString();
p.SpecialCode = node_Special.InnerXml;
SpecialList.Add(p);
}

dt.Rows.Add(dr);
}
}
}
}

}
//构造GridView列
foreach (DataColumn dc in dt.Columns)
{
BoundField bf = new BoundField();
bf.HeaderText = "<nobr>" + dc.ColumnName + "</nobr>";
bf.DataField = dc.ColumnName;
bf.HtmlEncode = false;
gv_RawDataList.Columns.Add(bf);
}

gv_RawDataList.DataSource = dt;
gv_RawDataList.DataBind();
SetGvLink();

gv_Hidden_ALLSpecials.DataSource = SpecialList;
gv_Hidden_ALLSpecials.DataBind();

gv_Hidden_Photos.DataSource = PhotoList;
gv_Hidden_Photos.DataBind();

BindChkListSpecial();
Bindgv_EachRawData_Photos();

SetGVPhotoButtonValue();
hidenOldGVColumnsCount.Value = gv_RawDataList.Columns.Count.ToString();

}

前台就一个GV

热心网友 时间:2022-04-10 23:20

SQL:

declare @xml as xml;
SELECT @xml = col1 FROM TableName;
SELECT
T.x.value('./@name','varchar(100)') as Name,
T.x.value('./@age','int') as Age,
T.x.value('./@sex','int') as Sex
FROM @xml.nodes('/root/temp') AS T(x)

CS:

SqlConnection connection = new SqlConnection(YourConnectionString);
try
{
connection.Open();
SqlCommand command = connection.CreateCommand("declare @xml as xml;SELECT @xml = col1 FROM TableName;SELECT T.x.value('./@name','varchar(100)') as Name, T.x.value('./@age','int') as Age, T.x.value('./@sex','int') as Sex FROM @xml.nodes('/root/temp') AS T(x)");

.....
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...每次文字比较多超出屏幕大小就不知道怎么截屏,求教大佬! 我国政策性 广西明士清医疗器械有限公司怎么样? 广西禾力药业有限公司怎么样? 广西龙母圣商贸有限公司怎么样? 安徽合肥有什么去痔的好地方 我女朋友的谷丙转氨酶过高(达到121),而且两对半检测为阴性,是肝功能有... 泸州丽人女子医院开展科室 自由之子本次世界杯是否将在小组赛中被菜? 世界杯谁会嬴 如何查询含XML类型字段的表 vs.net2005中如何对XML文档进行查询? 如何查询 xmltype中的所有 人群中反骨的比例大概是多少?具有反骨的人的特别... 长反骨的人是不是很多? 反骨的人好不好! 男人有反骨意味着什么? 什么是反骨?有反骨的人可靠吗? mysql 如何备份和还原数据库 反骨的人多不多,这种人靠谱吗 mysql数据库备份怎么直接拷贝 备份mysql数据 脑后有反骨的人多数是人才 吗? mysql数据库备份怎么保证数据 mysql数据库怎么备份数据库 如何备份mysql数据库? 在备份mysql数据库时,我直接把data文件夹下的数据... 怎么备份mysql数据库 mysql数据库该如何备份呀 mysql中备份和还原数据库的语句什么啊 怎么才能知道一个网站的XML地址? DB2 9中怎样查询 XML 数据 c# 对复杂的xml文件进行查找 xml 查询 C# c# 怎么查询xml指定根元素下子元素的值 怎么模糊查询一个XML中的数据 在线等C#对XML做查询 如何按值查询XML (C#) 如何用XPath表达式查询XML xml子查询 MSSQL数据库查询XML字段问题 SQLServer中查询xml数据节点的属性值 如何在分布式查询中查询远程数据库上的xml列 XML如何实现像mysql数据库一样的查询功能? sql 2005数据库 如何操作xml 柚子剥开有水还能吃吗 柚子剥开后有粘稠液体还能吃吗 柚子放了很长时间,打开包装皮上起了一层水珠 为什么柚子里有像浆汁一样的东西 把柚子和皮分开一晚上水分会流失吗?