进阶教程八牛
民生舆情 2021-08-24 13:34 字号: 大 中 小
大家好,我是武汉华师的SUNWEN,今天Zzz....(快醒醒!啪!..啪!倒,叫我起来也不要用皮鞋来打嘛).现在是五月四号晚上19:33,我好想睡觉.只好打开音乐来提神了!
这一节我要讲的是大家非常关心的,肯定也是非常感兴趣的部分.嘿嘿,也是我写教程最拿手的部分----ADO数据库访问.想到这,我就想起我在去年写的\"访问数据库\"系列文章,嘿嘿!所以呢,如果你觉得对记录集之类的东西比较难理解的话,我推荐你先看一看我的那几篇文章.好了,让我们开始吧!
什么是ADO(ActiveX Data Objects译作ActiveX数据对象),ADO是一个非常简单的思想,一种让你仅用一种方式去访问数据的思想.ADO不算一个新的思想,仅是采用现有的数据访问技术,将其融合起来.如果你不理解ADO,想一想ODBC吧!其实我们在搞ASP的时候,就用到了ADO,还记得吗,那个曾经被我们用过无数次的set conn=eateObject(\"nnection\")吗?是的,就是它.至于ADO的一些概念性的东西,请大家自行查阅资料,不过,其实不了解也没有关系,只把它想象成一个M$给我们的访问数据的工具吧!
OK,下面的例子是以一个M$ ACCESS 2000的数据库为基础的,它的结构如下,表名是Categories,文件名是b ,赶快建一个吧:
Category ID Category Name
1 Bugbash stuff
2 Appweek Bugs
3 .NET Reports
4 Internal support
好的,我先把所有的程序都写出来,然后我们来一句一句的品尝:
000: // ADO\\
001: using System;
002: using ta;
003: using O;
004:
005: public class MainClass
006: {
007: public static void Main ()
008: {
009: // 设定好连接字符串和选择命令字符串010: string strAccessConn = \"Provider=EDB.4.0;Data Source=B\";
011: string strAccessSelect = \"SELECT * FROM Categories\";
012:
013:
014: DataSet myDataSet = new DataSet();
015: d(\"Categories\");
016:
017: ADOConnection myAccessConn = new ADOConnection(strAccessConn);
019: ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
020: lectCommand = new ADOCommand(strAccessSelect,myAccessConn);
021:
022: en();
023: try
024: {
025: llDataSet(myDataSet,\"Categories\");
026: }
027: finally
028: {
029: ose();
030: }
031:
032: try
033: {
034: // 一个记录集可以包含多个表,我们把它们放到一个数组中035: DataTable[] dta = l;
036: foreach (DataTable dt in dta)
037: {
站的基础建设至关重要 038: iteLine(\"Found data table {0}\", bleName);
039: }
040:
041:
042: iteLine(\"{0} tables in data set\", unt);
043: iteLine(\"{0} tables in data set\", ngth);
044:
045: iteLine(\"{0} rows in Categories table\", bles[\"Categories\"].unt);
046: iteLine(\"{0} columns in Categories table\", bles[\"Categories\"].unt);
048: DataColumn[] drc = bles[\"Categories\"].l;
049: int i = 0;
050: foreach (DataColumn dc in drc)
051: {
052: iteLine(\"Column name[{0}] is {1}, of type {2}\",i++ , lumnName, taType);
054: }
055: DataRow[] dra = bles[\"Categories\"].l;
056: foreach (DataRow dr in dra)
057: {
058: iteLine(\"CategoryName[{0}] is {1}\", dr[0], dr[1]);
060: }
061: }
062: catch (Exception e)
063: {
064: iteLine(\"Oooops. Caught an exception:\\n{0}\", ssage);
065: }
066: }
067: }
看起来,这个例子是有一些复杂的,只怪我例子选的不好,呵呵.不过,细细分析一下,还是可以理解的.我现在说一下这个例子中几个特别的东东.第一就是不象在ASP中,一个命令字符串被须被当作一个命令对象.020做的正是这个事情.注意,在015行有一个d(\"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 ring
CategoryName[1] is Bugbash stuff
CategoryName[2] is Appweek Bugs
CategoryName[3] is .NET Reports
CategoryName[4] is Internal support
好了,就说到这吧,SUNWEN真是想睡了,什么音乐都不管用了,呵呵.这个例子还真要花大力气才能完全理解.O.K.886!
查看本文来源
米诺地尔酊用多久可以停用武汉治疗男科好方法
海口治疗阳痿医院
-
-
借助现阶段利好政策万宁将打造高端滨海度假
借助现阶段利好政策 万宁将打造高端滨海度假旅游基地借助现...
2020-08-13 | 民生舆情
-
-
埃梅里厄齐尔除了助攻还得进球欧联杯我要轮
埃梅里:厄齐尔除了助攻还得进球 欧联杯我要轮换埃梅里赛后...
2020-07-04 | 民生舆情
-
-
詹皇抠门那是詹韦秀恩爱NBA最抠门其实是搭配
詹皇抠门?那是詹韦秀恩爱 NBA最抠门其实是他邦纳 北...
2020-06-02 | 民生舆情
-
-
取关门主角松口表态想续约难道他真的长大了搭配
取关门主角松口表态想续约!难道他真的长大了考神最终会续...
2020-05-31 | 民生舆情
-
-
张世敏到我区调研社区建设
张世敏到我区调研社区建设8月30日,副市长张世敏到我区调研...
2019-07-16 | 民生舆情
-
-
港口区假日旅游市场繁荣
港口区假日旅游市场繁荣4月29日至5月1日,港口区天气晴好,...
2019-07-16 | 民生舆情