选择显示字体大小

亲密接触asp.net(6)

     关于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=mysqlserver";
   sqlcommand mycommand = new sqlcommand(myselectquery);
   mycommand.activeconnection = new sqlconnection(myconnectstring);
   mycommand.commandtimeout = 15;
   mycommand.commandtype = commandtype.text;< /font >
  
  
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons