高分求教,关于linq和xml的问题。!!!!!!!!!!!!!!!!!!

qianzou1 2012-08-14 11:40:17
今天看一本书,出现了问题,这是作者的源代码,后台代码文件代码如下//程序名称:7-01.aspx.cs
//程序功能:XML树的创建和查询
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;
using System.IO;

public partial class _7_01 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 创建XML树
/// </summary>
private void CreateXML()
{
XElement contacts = new XElement("学生列表",
new XElement("详细资料",
new XElement("姓名", "王二"),
new XElement("年龄", "23"),
new XElement("电话", "13888888888",
new XAttribute("类型", "移动电话")),
new XElement("电话", "87878787",
new XAttribute("类型", "家长联系电话")),
new XElement("成绩",
new XElement("语文", "88"),
new XElement("历史", "91"),
new XElement("政治", "70")
)
)
);
//保存到xml文件中
contacts.Save(Server.MapPath("students.xml"));
}
protected void btnCreateXML_Click(object sender, EventArgs e)
{
//判断是否已经存在同名文件
//如果不存在
if (!File.Exists(Server.MapPath("students.xml")))
{
//调用此方法进行创建和保存
CreateXML();
//创建后如果存在,则证明创建成功
if (File.Exists(Server.MapPath("students.xml")))
{
//输出成功信息
Response.Write("创建成功!");
}
}
else //如果已存在
{
//输出提示信息
Response.Write("保存失败:同名文件已存在!");
}
}
//查询全部
protected void btnQueryAll_Click(object sender, EventArgs e)
{
//加载xml文件
XElement exl = XElement.Load(Server.MapPath("Product.xml"));
//LINQ查询
var c = from x in exl.Descendants("Product")
select x;
//遍历结果集
foreach (var cc in c)
{
//输出
Response.Write(cc.ToString() + " <br>");
}
}
//带条件查询
protected void btnQuery_Click(object sender, EventArgs e)
{
//首先加载xml文件
XElement exl = XElement.Load(Server.MapPath("Product.xml"));
//条件查询
var c = from x in exl.Descendants("Product")
where (string)x.Element("ProductID") == "1"
select x;
//遍历结果集
foreach (var cc in c)
{
//输出
Response.Write(cc.ToString() + "<br>");
}
}
}

——————————————————————————————————————————————————————————
前台代码文件如下
<%--程序名称:11-04.aspx--%>
<%--程序功能:XML树的创建和查询--%>
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="7-01.aspx.cs" Inherits="_7_01" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>XML树的创建和查询</title>
</head>
<body>
<form id="form1" runat="server">

<asp:Button ID="btnCreateXML" runat="server" Text="创建XML树"
onclick="btnCreateXML_Click" />

<asp:Button ID="btnQueryAll" runat="server" Text="查询全部"
onclick="btnQueryAll_Click" />

<asp:Button ID="btnQuery" runat="server" Text="带条件查询"
onclick="btnQuery_Click" />

</form>
</body>
</html>
————————————————————————————————————————————————————

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
运行结果出错,visual studio 2005提示不认识linq缺少空间引用,好吧,查了一下MSDN文档,上面说system.linq的EXlement类(上面代码中用了此类)NET Framework 4.0 我看的这本书出版与2009年,是介绍asp.net3.5
我想说,难道作者穿越了????????????????????????????????求指点
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianzou1 2012-08-14
  • 打赏
  • 举报
回复
你当我是白痴吗?还有vs2008是3.5和2.0 没有3.0 [Quote=引用 4 楼 的回复:]
2008 3.0可以用Linq,你想用4.0就用2010
[/Quote]
qianzou1 2012-08-14
  • 打赏
  • 举报
回复
汗,请你把我的问题看清楚了在回答好不好啊,3.0有linq但是没有EXlement类啊,程序里面用了此类[Quote=引用 4 楼 的回复:]
2008 3.0可以用Linq,你想用4.0就用2010
[/Quote]
bdmh 2012-08-14
  • 打赏
  • 举报
回复
2008 3.0可以用Linq,你想用4.0就用2010
qianzou1 2012-08-14
  • 打赏
  • 举报
回复
你明白我的意思吗?程序需要用NET Framework 4.0 2008是没有的[Quote=引用 1 楼 的回复:]
2005,是.net2.0,,2.0里没有Linq,你用2008或2010,用.net 3.0+
[/Quote]
qianzou1 2012-08-14
  • 打赏
  • 举报
回复
嗯,但是帮助文档说,只有NET Framework 4.0才有linq的EXlement类啊啊啊,作者用的是vs2008那来的EXlemenl类啊,穿越了[Quote=引用 1 楼 的回复:]
2005,是.net2.0,,2.0里没有Linq,你用2008或2010,用.net 3.0+
[/Quote]
bdmh 2012-08-14
  • 打赏
  • 举报
回复
2005,是.net2.0,,2.0里没有Linq,你用2008或2010,用.net 3.0+

110,534

社区成员

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

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

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