文档章节

Namespace(命名空间)的使用

波利beryl
 波利beryl
发布于 2014/11/10 10:12
字数 1250
阅读 4
收藏 0

开源中国推出 PaaS@OSC 代码演示和运行平台

作者:飞刀 

关于Namespace(命名空间)的使用常用<% @ Import Namespace="System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们贏SP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能。其实说白了,一个Namespace; 就是一个组件我下面简单的列举一些常用的Namespace 

<% @ Import Namespace="System.Data" %> 处理数据时用到 
<% @ Import Namespace="System.Data.ADO" % > 使用ADO.net ; 时用到 
<% @ Import Namespace="System.Data.SQL" %> SQL Server 数据库专用 
<% @ Import Namespace="System.Data.XML" %> 不用看处理XML用到 
<% @ Import Namespace="System.IO" %> 处理文件时用到 
<% @ Import Namespace="System.Web.Util" %> 发邮件时大家会用到 
<% @ Import Namespace="System.Text" %> 文本编码时用到 

操作数据库需要的东东 

讲解了Namespace,我们可以正式来讨论数据库的应用了。从上面的可以看出,我们操作数据库,我们需要引用下面两个Namespace 

<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 

其实System.Data.SQL 可以用System.Data.ADO来代替,SQL是SQL Server专用,ADO可以支持任何数据库(只要在主机上存在相应的驱动就行了,如Access,Mysql,Oracle之类的),这里由于飞刀的数据库是SQL Server,本来可以用ADO,但是想想M$单独把SQL独立出来,为何不用呢。至于它能带来多少好处,飞刀没有测试过,对SQL Server肯定要比ADO好一点啦。 

无论是ADO还是SQL ,他们都有几个基本的对象用于操作 

Connections 连结到一个数据库,以便于后面的应用(类似ADO中的Connections) 
Commands 执行SQL语句的地方 
DataReader 读取执行后返回的数据内容 
DataSet 储存数据,功能强大,我们会具体讲解 
DataSetCommand 执行SQL语句,并把数据存入DataSet 

这里面可能最难理解的就是DataSet,我们先不去管他,先拿软的开刀 

Connections(SQLConection 或者 ADOConnection) 

它的主要任务就是建立一个与数据库服务器的联结 

<% @ Page Language="C#" %> 
<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 
<Script Language= "C#" Runat= "Server"> 
public void Page_Load(Object src,EventArgs e) 
{ 
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
} 
</script> 

上面我们建立了一个名为MyConnection的联结,就好像我们在ASP中用ADODB.Connection打开了一个联结.这个联结我们在Command或者DataSetCommand中将会使用. 

它的一些有用的属性和方法有 

ConnectionString 取得或设置连结数据库的语句 
ConnectionTimeout 取得或设置连结数据库的最长时间,也是就超时时间 
DataBase 取得或设置在数据库服务器上要打开的数据库名 
DataSource 取得或设置DSN,大家不会陌生吧:) 
Password 取得或设置密码 
UserID 取得或设置登陆名 
State 取得目前联结的状态 
Open() 打开联结 
Close() 关闭联结 
Clone() 克隆一个联结。(呵呵,绵羊可以Connection我也可以) 


我们也通过一个小例子来看看他们的用法: 
SQLConnection myConnection = new SQLConnection(); 
myConnection.DataSource = "mySQLServer"; 
myConnection.Password = ""; 
myConnection.UserID = "sa"; 
myConnection.ConnectionTimeout = 30; 
myConnection.Open(); 
myConnection.Database = "northwind"; 
myConnection.IsolationLevel = IsolationLevel.ReadCommitted 

Commands(SQLCommand 或者 ADOCommand) 

上面的程序中我们打开了一个联结,这里我们就需要来使用这个,看例子比较好: 

<% @ Page Language="C#" %> 
<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 
<Script Language="C#" Runat="Server"> 
public void Page_Load(Object src,EventArgs e) 
{ 
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
string strIndex="select * from aspcn where purview='webmaster'"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection); 
MyConnection.Open(); //打开联结 
MyCommand.ExecuteNonQuery(); //执行SQL,但不返回任何记录 
MyConnection.Close(); 
} 
</script> 

在上面的例子中我们建立SQLCommand对象时引用了两个参数(strIndex,MyConnection),从源程序中我们也可以看出来strIndex代表的是执行的SQL语句,MyConnection是我们先前建立的联结.然后我们就要先打开MyConnnection,然后再执行这个SQL语句。我们在这里执行用的是ExecuteNonQuery()方法,这样不返回记录集,只是返回受影响的记录个数。 

这里我们打开和关闭数据库也可以这样做。 

stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
string strIndex="select * from aspcn where purview='webmaster'"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection); 
MyCommand.ActiveConnection.Open(); 
MyCommand.ExecuteNonQuery(); 
MyCommand.ActiveConnection.Close(); 

所得结果和先前的一样。所以执行一条SQL语句有很多种方法。而且还不只两种,我们后面学了DataSetCommand,那打开方法就是N种了:)这就需要看你的习惯和程序的要求了;) 

我们先来看看Command常用的方法和属性 

ActiveConnection 取得或设置联结Connections 
CommandText 执行的SQL语句或储存过程(StoredProcedure)名 
CommandTimeout 执行的最长时间 
CommandType Command操作的类型(StoredProcedure,Text,TableDirect)三种,默认Text 
Parameters 操作储存过程时使用 
Execute() 执行SQL语句或储存过程 
ExecuteNonQuery() 同上,区别在于不返回记录集 
Clone() 克隆Command 


同样看一个例子: 

string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID"; 
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer"; 
SQLCommand myCommand = new SQLCommand(mySelectQuery); 
myCommand.ActiveConnection = new SQLConnection(myConnectString); 
myCommand.CommandTimeout = 15; 
myCommand.CommandType = CommandType.Text; 

原文链接:http://blog.csdn.net/21aspnet/article/details/159998

本文转载自:

波利beryl
粉丝 21
博文 30
码字总数 5582
作品 0
成都
私信 提问
C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:命名空间)

第十七章:用于大型程序的工具:命名空间 在一个给定的作用域中定义的每个名字,在该作用域中必须是唯一的。对庞大、复杂的应用程序而言,这个很难满足。由独立开发的库构成的复杂程序更有可能...

长平狐
2012/10/08
162
0
复习PHP-语言参考-命名空间

1.定义命名空间 命名空间只作用于类,函数,常量。(注意只能是const的常量,而不能是define出来的常量,我测试是报错的。) 通过namespace 声明。 必须在所有代码之前声明。 2.定义子命名空...

qzd1989
2014/05/02
0
0
命名空间(namespace)详解

一、为什么使用命名空间 考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如这个区域,如果它们生活在不同的...

天王盖地虎626
09/28
7
0
PHP的命名空间

PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。 为什么php中要使用namespace? 假设如果不使用namespace,那么每...

王二狗子11
2018/01/07
0
0
PHP之新手自学基础知识(六)——拓展篇之命名空间

命名空间概述 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮...

天谴残魂
2018/01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
47分钟前
5
0
Spring Security 实战干货:必须掌握的一些内置 Filter

1. 前言 上一文我们使用 Spring Security 实现了各种登录聚合的场面。其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在...

码农小胖哥
50分钟前
7
0
常见分布式事务解决方案

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源...

asdf08442a
50分钟前
3
0
influxdb continuous queries(cq)从入门到放弃

从前一篇influxdb的文章prometheus基于influxdb的监控数据持久化存储方案完成之后,就一直在折腾influxdb发布测试和生产环境的问题,经过接近2个月的验证,最终发现使用influxdb自带cq的方案...

狗陈
今天
7
0
7.线程通信

在现实生活中,如果一个人团队正在共同完成任务,那么他们之间应该有通信,以便正确完成任务。 同样的比喻也适用于线程。 在编程中,要减少处理器的理想时间,我们创建了多个线程,并为每个线...

Eappo_Geng
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部