`
380071587
  • 浏览: 446377 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

任务一 基本的数据库连接——以类为单位的编程思想

 
阅读更多

【知识点】

Ø基本操作

Ø以类为单位的编程

Ø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的三个核心类SqlConnectionSqlCommandSqlDataReader

二、类是具有一定功能的程序段,通俗一点说,它是干活的,干某一类活的,它干活的时候,已经和人差不多了。

让我们设想一下这样一个过程,打开数据库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

三、类是一种自定义数据类型,而我们通常所说的类的实例、对象则可以看做是这个自定义数据类型的类变量。

很多人都把conncmddr等叫做类的实例,叫对象,我更喜欢把它们叫做类变量。

变量的实质是存储单元或者存储区域,这个,我就不过多的解释了,我们现在来看看SqlConnection conn=new SqlConnection();int a=1;有什么区别?

Int a=1;的实质,是开辟一个两个字节的存储单元,把用01代码表示的16位补码形式的1存放进去,把这个存储单元起个名字叫a,以后,随时可以通过这个名字来访问里面的数据,取出或者存放;

SqlConnection conn=new SqlConnection();呢?是不是也开辟了一个存储区域,把用01表示的编译后的,包括字段、属性、方法的类存放进去呢?conn事实上是这个存储区域的地址,类似于指针变量或者句柄,通过这个地址来访问存储区域中的字段、属性,调用里面的方法呢?

那么,把类看成是一种数据类型,比结构体多了个函数代码的数据类型,有什么不合适的吗?

这时,这句SqlDataReader dr =cmd.ExecuteReader();也就更好解释了,dr是个SqlDataReader类的类指针变量,cmd执行ExecuteReader()方法,获得的是指向

结果SqlDataReader类的地址,并把这个地址交给了dr,通过这个dr就可以访问这个结果SqlDataReader中的数据和方法了。

四、学编程,就是一个不断认识新类、了解、熟悉类的过程。

编程就是用计算机语言写文章,这和我们学习英语,用英语写文章是一样的。学英语,最重要的是词汇量,你是掌握了几千、一万、还是几万词汇,往往就可以衡量出你的英语水平,编程也是这样的,掌握了多少个类,最能说明你的编程水平,有一点需要说明的是,学编程,不需要你掌握成千上万个类,几百个,掌握好的话,就相当不错了...

学编程还有一点和学英语是一样的,那,就是在开始的时候不要过于纽结于语法。别说英语,就是我们天天用的汉语,如果考考你语法的话,相信也不会有多少人及格的。如果一开始就钻牛角尖,把精力放在语法上,会严重打击你的积极性的。

五、以类为单位的编程,已经相当的傻瓜化了……

版权所有©2012,西园工作室.欢迎转载,转载请注明出处.源代码:共享13033480(电子商务系统源代码)

分享到:
评论

相关推荐

    javaSE代码实例

    第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知识库

    为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程...

    Visual C++ 2005入门经典--源代码及课后练习答案

    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 ...

    超爽的自学课件(java)

    1) 第1章:对象入门 这一章是对面向对象的程序设计(OOP)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的多形性的概念。...

    亮剑.NET深入体验与实战精要2

    此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...

    亮剑.NET深入体验与实战精要3

    此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...

    Oracle Database 11g初学者指南--详细书签版

    在技术会议和用户组会议上她乐于展现和分享有关Oracle数据库主题的思想.她的Email是michelle_malcher@ioug.org. 目录 封面 -14 封底 -13 扉页 -12 版权 -11 关于作者 -10 前言 -8 目录 -5 第1章 数据库基础 1 1.1 ...

    Android程序设计基础

     阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,...

Global site tag (gtag.js) - Google Analytics