首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> C#/CSHARP教程
SUNWEN教程之----C#进阶8-.NET教程,C#语言
作者:网友供稿 点击:6
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
sunwen教程之----c#进阶
(八)
mrfat@china.com  
大家好,我是武汉华师的sunwen,今天zzz....(快醒醒!啪!..啪!倒,叫我起来也不要用皮鞋来打嘛@#$%&*).现在是五月四号晚上19:33,我好想睡觉.只好打开音乐来提神了!

这一节我要讲的是大家非常关心的,肯定也是非常感兴趣的部分.嘿嘿,也是我写教程最拿手的部分----ado数据库访问.想到这,我就想起我在去年写的"访问数据库"系列文章,嘿嘿!所以呢,如果你觉得对记录集之类的东西比较难理解的话,我推荐你先看一看我的那几篇文章.好了,让我们开始吧!

什么是ado(activex data objects译作activex数据对象),ado是一个非常简单的思想,一种让你仅用一种方式去访问数据的思想.ado不算一个新的思想,仅是采用现有的数据访问技术,将其融合起来.如果你不理解ado,想一想odbc吧!其实我们在搞asp的时候,就用到了ado,还记得吗,那个曾经被我们用过无数次的set conn=server.createobject("adodb.connection")吗?是的,就是它.至于ado的一些概念性的东西,请大家自行查阅资料,不过,其实不了解也没有关系,只把它想象成一个m$给我们的访问数据的工具吧!

ok,下面的例子是以一个m$ access 2000的数据库为基础的,它的结构如下,表名是categories,文件名是bugtypes.mdb ,赶快建一个吧:

category id category name
1 bugbash stuff
2 appweek bugs
3 .net reports
4 internal support

好的,我先把所有的程序都写出来,然后我们来一句一句的品尝:

000: // ado\adosample.cs
001: using system;
002: using system.data;
003: using system.data.ado;
004:
005: public class mainclass
006: {
007:    public static void main ()
008:    {
009:       // 设定好连接字符串和选择命令字符串010:       string straccessconn = "provider=microsoft.jet.oledb.4.0;data source=bugtypes.mdb";
011:       string straccessselect = "select * from categories";
012:
013:       //建立记录集,并把categories这个表填进去
014:       dataset mydataset = new dataset();
015:       mydataset.tables.add("categories");
016:       
017:       //建立ado实例018:       adoconnection myaccessconn = new adoconnection(straccessconn);
019:       adodatasetcommand myaccessdatasetcmd = new adodatasetcommand();
020:       myaccessdatasetcmd.selectcommand = new adocommand(straccessselect,myaccessconn);
021:
022:       myaccessconn.open();
023:       try
024:       {
025:          myaccessdatasetcmd.filldataset(mydataset,"categories");
026:       }
027:       finally
028:       {
029:          myaccessconn.close();
030:       }
031:
032:       try
033:       {
034:          // 一个记录集可以包含多个表,我们把它们放到一个数组中035:          datatable[] dta = mydataset.tables.all;
036:          foreach (datatable dt in dta)
037:          {
038:             console.writeline("found data table {0}", dt.tablename);
039:          }
040:          
041:          //下面的两行程序展示了两种从一个记录集中得到这个数据集中的表格数的方法
042:          console.writeline("{0} tables in data set", mydataset.tables.count);
043:          console.writeline("{0} tables in data set", dta.length);
044:          //下面的几行程序说明了如何从一个记录集中依靠表格的名称来取得信息
045:          console.writeline("{0} rows in categories table", mydataset.tables["categories"].rows.count);
046:          //列的信息是自动从数据库中得到的,所以我们可以用以下的代码047:          console.writeline("{0} columns in categories table", mydataset.tables["categories"].columns.count);
048:          datacolumn[] drc = mydataset.tables["categories"].columns.all;
049:          int i = 0;
050:          foreach (datacolumn dc in drc)
051:          {
052:             //打印出列的下标和列的名称和数据类型053:             console.writeline("column name[{0}] is {1}, of type {2}",i++ , dc.columnname, dc.datatype);
054:          }
055:          datarow[] dra = mydataset.tables["categories"].rows.all;
056:          foreach (datarow dr in dra)
057:          {
058:             //打印出categoryid和categoryname059:             console.writeline("categoryname[{0}] is {1}", dr[0], dr[1]);
060:          }
061:       }
062:       catch (exception e)
063:       {
064:          console.writeline("oooops.  caught an exception:\n{0}", e.message);
065:       }
066:    }
067: }
看起来,这个例子是有一些复杂的,只怪我例子选的不好,呵呵.不过,细细分析一下,还是可以理解的.我现在说一下这个例子中几个特别的东东.第一就是不象在asp中,一个命令字符串被须被当作一个命令对象.020做的正是这个事情.注意,在015行有一个mydataset.tables.add("categories")语句,这并不是把数据库中的categories这个表填进去,只不过是建一个空表,而025才是真的填充数据.

这个例子的输出是:

found data table categories
1 tables in data set
1 tables in data set
4 rows in categories table
2 columns in categories table
column name[0] is categoryid, of type int32
column name[1] is categoryname, of type system.string
categoryname[1] is bugbash stuff
categoryname[2] is appweek bugs
categoryname[3] is .net reports
categoryname[4] is internal support
好了,就说到这吧,sunwen真是想睡了,什么音乐都不管用了,呵呵.这个例子还真要花大力气才能完全理解.o.k.886!

下一页

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用C#编写Windows Forms应用程序(转)-.NET教程,Windows开发
·C#学习杂记-.NET教程,C#语言
·将文本格式的文章转换为html/xml格式文本的功能封装到Javabean-JSP教程,Java技巧及代码
·用java小程序applet实现无限级树结构-JSP教程,Java技巧及代码
·《.net编程先锋C#》第一章 C#简介-.NET教程,C#语言
·企业人事信息管理系统1.0-ASP教程,数据库相关
·《.net编程先锋C#》第三章 第一个C#应用程序-.NET教程,C#语言
·《.net编程先锋C#》第二章 理论基础-公用语言 运行环境-.NET教程,C#语言
·Windows应用程序调试必备的--符号文件(Symbols)-.NET教程,评论及其它
·c#反编译微软msdn2003的帮助文档,并将反编译结果保存到一个sqlserver数据库中
最新文章
·vista的新特性:懒人的安全感_windows vista
·photoshop为情侣照片打造韩式梦幻相框_photoshop教程
·专访seobbs站长乐思蜀_站长访谈
·嘟嘟网络陈艺光:诚信是一种信仰_站长访谈
·俺自己黄修源:只问耕耘,不问收获_站长访谈
·李向华:如何提高论坛用户粘性_站长访谈
·给windows vista系统网络和共享中心“换脸”_windows vista
·胡宪东谈搜索优化的实战_站长心得
·网站快速成功的九个步骤_站长心得
·google pr数字背后的含意_google推广
相关主题
  • SUNWEN教程之----C#进阶4-.NET教程,C#语言
  • SUNWEN教程之----C#进阶7-.NET教程,C#语言
  • SUNWEN教程之----C#进阶9-.NET教程,C#语言
  • SUNWEN教程之----C#进阶10-.NET教程,C#语言
  • SUNWEN教程之----C#进阶11-.NET教程,C#语言
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭