【知识点】
Ø基本操作
Ø以类为单位的编程
ØADO.NET的核心类
【操作步骤】
一、附加数据库NetShop;
二、文件→新建项目→其它项目类型→Visual Studio解决方案→空白解决方案,选择项目类型及模板;
三、选择.Net框架.NET Framework 2.0、项目所建位置D:\WestGarden、名称NetShop,如图示:
四、单击“确定”按钮。
五、右击“解决方案NetShop”→添加→新建网站→ASP.NET网站,选择网站位置D:\WestGarden\NetShop\Web、网站使用的语言Visual
C#,如图示:
六、单击“确定”按钮;
七、打开Default.aspx.cs文件,添加如下代码:
using System;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connectionString = "Server=.\\SQLEXPRESS;Database=NetShop;Trusted_Connection=SSPI";
string cmdText = "SELECT * FROM Category";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmdText;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr["Name"] + "<br />");
}
dr.Close();
conn.Close();
}
}
八、右击Default.aspx在浏览器中查看运行结果。
【说明】
一、高级编程,都是以类为单位的。
在这段代码中,主要使用了一个Response类以及ADO.NET的三个核心类SqlConnection、SqlCommand和SqlDataReader。
二、类是具有一定功能的程序段,通俗一点说,它是干活的,干某一类活的,它干活的时候,已经和人差不多了。
让我们设想一下这样一个过程,打开数据库NetShop,执行查询命令SELECT * FROM Category,把查询到的结果中所有的Name写到黑板上去。
我们找四个人来完成这个任务吧:
第一个人叫SqlConnection,他的任务是打开、关闭数据库。要打开数据库,我必须要告诉他这么几个信息:哪台机器、哪个数据库、以Windows身份验证方式登录还是以SQLServer身份验证方式登录,如果是以SQL
Server身份验证方式登录,我还要告诉他用户名和密码,如图所示:
他打开数据库使用的信息是:
1.本地机器:.;
2.Windows身份验证方式:Trusted_Connection=SSPI;
3.连接到数据库NetShop:Database=NetShop;
这些信息,我可以写在标记为connectionString的小纸条上,再交给他吗?
string connectionString ="Server=.;Database=NetShop;Trusted_Connection=SSPI";
注意:大家其实都不习惯在打开数据库时指定连接到哪个数据库,但,如果你打开时不指定,一会儿执行SQL命令的时候,还是要指定的。
第二个人叫SqlCommand,他的任务是执行SQL命令。他上来的时候,我首先要告诉他,针对哪个连接执行,这个必须要告诉他,因为虽然我们很少同时打开几个数据库,但事实上前面的SqlConnection童鞋是完全可以打开几个数据库连接的,下图就是我在本机上同时打开.和.\SQLEXPRESS两个数据库并执行SQL命令的结果:
我还需要告诉他执行的是什么命令,比方说,是个存储过程,还是简单的SQL语句。如果是存储过程,那,我得告诉他存储过程的名称;如果是SQL语句,我需要告诉他命令的内容,我告诉他的这三个信息,可以写成这样吗?
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmdText;
SqlCommand执行完命令,在结果窗口中会出现类似上面两个图中的结果,我们现在,再找两个人吧,其中一个人负责一行一行的读表格中的数据,另一个人负责把读出来的数据写到“黑板”上,对了,这两个人,一个叫SqlDataReader,一个叫Response。
三、类是一种自定义数据类型,而我们通常所说的类的实例、对象则可以看做是这个自定义数据类型的类变量。
很多人都把conn、cmd、dr等叫做类的实例,叫对象,我更喜欢把它们叫做类变量。
变量的实质是存储单元或者存储区域,这个,我就不过多的解释了,我们现在来看看SqlConnection conn=new SqlConnection();和int a=1;有什么区别?
Int a=1;的实质,是开辟一个两个字节的存储单元,把用0、1代码表示的16位补码形式的1存放进去,把这个存储单元起个名字叫a,以后,随时可以通过这个名字来访问里面的数据,取出或者存放;
SqlConnection conn=new SqlConnection();呢?是不是也开辟了一个存储区域,把用0、1表示的编译后的,包括字段、属性、方法的类存放进去呢?conn事实上是这个存储区域的地址,类似于指针变量或者句柄,通过这个地址来访问存储区域中的字段、属性,调用里面的方法呢?
那么,把类看成是一种数据类型,比结构体多了个函数代码的数据类型,有什么不合适的吗?
这时,这句SqlDataReader dr =cmd.ExecuteReader();也就更好解释了,dr是个SqlDataReader类的类指针变量,cmd执行ExecuteReader()方法,获得的是指向
结果SqlDataReader类的地址,并把这个地址交给了dr,通过这个dr就可以访问这个结果SqlDataReader中的数据和方法了。
四、学编程,就是一个不断认识新类、了解、熟悉类的过程。
编程就是用计算机语言写文章,这和我们学习英语,用英语写文章是一样的。学英语,最重要的是词汇量,你是掌握了几千、一万、还是几万词汇,往往就可以衡量出你的英语水平,编程也是这样的,掌握了多少个类,最能说明你的编程水平,有一点需要说明的是,学编程,不需要你掌握成千上万个类,几百个,掌握好的话,就相当不错了...
学编程还有一点和学英语是一样的,那,就是在开始的时候不要过于纽结于语法。别说英语,就是我们天天用的汉语,如果考考你语法的话,相信也不会有多少人及格的。如果一开始就钻牛角尖,把精力放在语法上,会严重打击你的积极性的。
五、以类为单位的编程,已经相当的傻瓜化了……
版权所有©2012,西园工作室.欢迎转载,转载请注明出处.源代码:共享13033480(电子商务系统源代码)
分享到:
相关推荐
第5章 数组——以不变应万变的哲学 59 5.1 数组的声明及创建 59 5.1.1 声明数组引用 59 5.1.2 创建数组对象 60 5.2 Java中数组的实现机制 61 5.3 数组的初始化 63 5.3.1 默认初始化 63 5.3.2 利用...
在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。 2. 二叉树基本性质 二叉树具有以下几个性质: 性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点。 性质2:深度为m的二叉树最多有2m-1个结点。 ...
为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程...
9.1 面向对象编程的基本思想 440 9.2 类的继承 441 9.2.1 基类的概念 442 9.2.2 基类的派生类 442 9.3 继承机制下的访问控制 446 9.3.1 派生类中构造函数的操作 448 9.3.2 声明类的保护成员 452 ...
1) 第1章:对象入门 这一章是对面向对象的程序设计(OOP)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的多形性的概念。...
此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...
此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...
在技术会议和用户组会议上她乐于展现和分享有关Oracle数据库主题的思想.她的Email是michelle_malcher@ioug.org. 目录 封面 -14 封底 -13 扉页 -12 版权 -11 关于作者 -10 前言 -8 目录 -5 第1章 数据库基础 1 1.1 ...
阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...
Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,...