分享
 
 
 

亲密接触ASP.Net(6)

王朝asp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

关于Namespace(命名空间)的使用

在前面的程序中我们看到,我常用<% @ Import Namespace="System.Data" %>,这是在引

用M$为我们提供的Namespace,这和ASP不同的,我们在ASP.net必须先引用与我们操作有

关的Namespace后才能使用相应的功能。其实说白了,一个Namespace; 就是一个组件。

这个是关于ASP.net的高级应用,我会在后面的章节讲。(不过要写到那里,时间......

)

我下面简单的列举一些常用的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=mySQLSer

ver";

SQLCommand myCommand = new SQLCommand(mySelectQuery);

myCommand.ActiveConnection = new SQLConnection(myConnectString);

myCommand.CommandTimeout = 15;

myCommand.CommandType = CommandType.Text;< /FONT >

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有