官方首页
计算机科学与技术
湖畔文学
真缘不夜天
湖畔艺术
湖畔科技
本站留言
热门关键字:
dreamlandcn.com
蓝色湖畔
标 题
内 容
作 者
录入者
关键字
所有栏目
共享天地
└ └ 图书分享
互动分享
└ └ QQ空间代码
└ └ 校内网代码
娱乐
└ └ 明星八卦
└ └ 美女写真
└ └ 搞笑
湖畔文学
└ └ 网络文学
└ └ 现代文学
└ └ 情感天地
计算机科学与技术
└ └ 算法
└ └ .net编程
└ └ └ C#.net
└ └ └ Visual Basic.net
└ └ └ C++.net
└ └ └ SQLServer2005
└ └ 网页技术
└ └ └ JavaScript
└ └ └ 网络安全
└ └ └ XML
└ └ └ 软件与程序
└ └ └ ASP
└ └ 高级编程
└ └ └ 汇编语言
└ └ └ C++语言
└ └ └ VisualBasic
└ └ 系统与软件
└ └ └ Windows
新闻
>>相关文章
·
经典的asp代码分享
·
ASP文件无组件直接上传功能
·
ASP中利用服务器组件 用st
·
使用ASPJPEG让图片保存到
·
ASP中很好用的防止盗链的方法
·
常用的6个ASP程序
·
本站首页模板已更改完成
·
旗袍碎语--让年轮倒转,让美丽
·
陈果导演的“香港回归三部曲”
·
北京奥运 完美谢幕
>>点击排行TOP10
·
多种排序算法,多种语言讲解(前言)
·
多种排序算法,多种语言讲解(简单选
·
多种排序算法,多种语言讲解(堆排序
·
多种排序算法,多种语言讲解(快速排
·
【其它欣赏】少儿不宜的设计
·
多种排序算法,多种语言讲解(冒泡排
·
VC中使用GetModuleFil
·
多种排序算法,多种语言讲解(树形选
·
C#中DataSet绑定XML的代
·
多种排序算法,多种语言讲解(希尔排
·
【其它欣赏】一辆卡车车身广告引发P
·
多种排序算法,多种语言讲解(交换排
·
多种排序算法,多种语言讲解(直接插
·
如何使用 Visual Basic
·
多种排序算法,多种语言讲解(总结)
当前位置:
网站首页
>
计算机科学与技术
>
.net编程
>
C#.net
> 浏览正文
C#中DataSet绑定XML的代码
作者:佚名 来源:本站原创 点击数: 更新时间:2008年07月06 【字体:
大
中
小
】
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb; //数据库需要的命名空间
using System.IO; //这个命名空间是用来绑定XML的,以及XML文件的读与写
//using System.Xml;
//using System.Xml.Schema;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
string strDSN = Server.MapPath(@"App_Data/bloglustarking.mdb");
//连接字符串,指定为当前目录内的App_Data/bloglustarking.mdb数据库地址。
OleDbConnection thisConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDSN);
//打开ACCESS数据库的连接。
thisConnection.Open();
//打开操作,一般添加在try中,以防止数据库的打开异常错误,有关异常在此忽略。
OleDbDataAdapter thisDataAdapter = new OleDbDataAdapter();
//使用OLEDB读取数据需要的DataAdapter
thisDataAdapter.SelectCommand = new OleDbCommand("Select [id], [title], [writer], [articleid], From [article]", thisConnection);
//使用数据库语句SELECT将数据库的内容读取,这是预先命令,然后将DataSet绑定。
DataSet thisDataSet = new DataSet();
//创建新的DataSet来绑定内容。
thisDataAdapter.Fill(thisDataSet);
thisConnection.Close(); //关闭数据库
//数据库部分请查阅相关资料,《C#入门经典》(第3版),ADO.net章节,在此不详细写出。
//这是一个测试改变字符串长度的代码。
string infString = ""; //这个是用于交换字符串的中间变量
foreach (DataRow myDataRow in thisDataSet.Tables[0].Rows)
{
if (myDataRow["title"].ToString().Length > 10)
{
infString = myDataRow["title"].ToString().Substring(0, 10) + "...";
myDataRow["title"] = infString;
}
}
//如果"title"字符串长度大于10,那么将显示前10个字符数,后将用"..."省略。
/*
GridView1.DataSource = thisDataSet;
GridView1.DataBind();
* 这两行去掉是直接绑定控件,以下实验用XML绑定后的结果。
* 这里为了绑定XML,我们便不绑定此DataSet了。
*/
//用变量声明文件所在地址。
string XMLname = @"App_Data/myXML.xml";
string XMLPath = Server.MapPath(XMLname);
//以下是绑定XML文件的实验代码
FileStream thisFileStream = new FileStream(XMLPath, FileMode.OpenOrCreate, FileAccess.Write);
//上一行代码直接用FileStream文件读写对象打开了XML文件。
StreamWriter streamWriterXML = new StreamWriter(thisFileStream);
//读取XML文件所需要的StreamWriter对象。
streamWriterXML.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
//以上这行标记着XML的版本和使用的编码方式,可以去掉。只是我不知道加上或不加会不会对文件显示造成影响。
//笔者认为,默认为ASCII码文档,可是通常我们使用的文档都以UTF-8的编码形式出现,在页顶部还是说明清楚比较好。
thisDataSet.Tables[0].WriteXml(streamWriterXML, XmlWriteMode.WriteSchema);
//以上这行使用WriteXML来写入XML的内容,经笔者查阅MSDN后得:
// WriteXML 表示一个编写器,该编写器提供一种快速、非缓存和只进的方式来生成包含 XML 数据的流或文件。
//XMLWriteMode有以下属性:DiffGram、IgnoreSchema和WriteSchema,表示的意义不在此写出了,感兴趣的读者请查阅微软MSDN上的XmlWriteMode
//thisDataSet1.ReadXml(streamReaderXML); //此行有错?
//错误已解决,不能直接使用同一个FileStream,此Stream指针已到文件末尾,因此会找不到数据。
thisFileStream.Close();
//一定要有此操作,否则将不能再次使用。
//因为是流,所以上面那个不能继续使用了,只能重新创建一个FileStream对象来读取XML文件的内容。
FileStream thisFileStream1 = new FileStream(XMLPath, FileMode.Open, FileAccess.Read);
StreamReader streamReaderXML = new StreamReader(thisFileStream1);
//方法同上,用只读方式打开XML文件。
DataSet thisDataSet1 = new DataSet();
//产生新的DataSet,以便取得新的值,和上面从数据库中取得的区别开。
thisDataSet1.ReadXml(streamReaderXML, XmlReadMode.ReadSchema);
thisFileStream1.Close();
GridView1.DataSource = thisDataSet1;
GridView1.DataBind();
//将thisDataSet1的内容绑入到GridView1控件,以便显示,这个方法同上。
Label1.Text = "绑定XML文档成功!文档地址: <a href=" + XMLname + " target=\"_blank\">" + XMLname + "</a>";
}
catch (Exception e1)
{
Label1.Text += "\n读取发生错误:\n错误信息:" + e1.ToString() + "<br>";
}
finally
{
//附代码写出。
string foottext = "", strLine = "";
FileStream afile = new FileStream(Server.MapPath("Default.aspx.cs"), FileMode.Open);
StreamReader sr = new StreamReader(afile, System.Text.Encoding.Default);
foottext = sr.ReadLine();
while (foottext != null)
{
strLine += foottext + "<br>";
foottext = sr.ReadLine();
}
sr.Close();
afile.Close();
Label2.Text += strLine.ToString();
}
/* 在ASP.Net 2.0中使用XML的心得体会:
* 今天下午,雷雨交加,终于学会了,从数据库绑定到DataSet的对象中,然后又从DataSet对象成功导入数据到XML里,
* 最后通过XML绑定到DataSet里,显示到GridView控件中。我最后成功的那一刻,感到非常高兴。
* 也许这样的代码,对于某些高手来说,还比较幼稚,但是我已经心满意足了。因为我终于体验到了,什么叫XML的强大了。
* 以后我会更刻苦地去钻研这些强大的东西,XML我已经被诱惑了,它能解决我目前很想很想解决的表格的问题。
* 我本还以为我今生对XML已经无缘,以前看到这个东西就头疼眼花,翻过很多资料,看不懂,原来我最后理解它了,它就
* 是传说中的数据容器,它可以存储很多通用的信息,只要好好编辑可以给它使用的程序来读取它,它的功能无处不在。
* 而且还可以从前台的JS中绑定,应该QQ空间就是这么做的吧。这个也是我想学到的一个功能。
* 呵呵,不过千万不要只往这个方向努力哦……小心陷进去出不来了……^_^,其他功能同样要学。
* 比如还有很多很多的用户控件,如Login控件,还有好多算法要掌握。虽然今天很累,那么就休息会吧。
* 只要用功,没有什么学不会的。世上无难事,只怕有心人。
* 下一步,准备学习XML的构架,我的新目标来了。
* ----2007年8月11日 Writted by 思念天灵
*/
}
}
上一篇:
记时器(精确到小数点后两位),可保存记录的C#源代码
下一篇
:
C#区号、邮编、手机查询程序源码
支持
反对
Tags:
dreamlandcn.com
输入您的搜索字词
提交搜索表单
Web
www.dreamlandcn.com
关于我们 | 服务指南 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 诚征英才 |
友情链接
Powered by
ACTCMS 2.0
Copyrights©2008-2009 蓝色湖畔
www.dreamlandcn.com
All Rights Reserved.