.
img
注册时间:--
  • 纯文字版本
    开 关闭
  • 消息
  • 收藏
  • 退出
注意:文章中$$符号只有一个,因程序问题提交后变成了两个。

ADO.NET第1课

网站开发,总离不开数据库。asp.net有了sql,就可以开发出许多实用的网站程序了。不幸的是,我一直没法见识sql的真面目,在此,我总结一下基于access数据库的asp.net应用,开始我们的学习。
使用access,要引入System.Data.OleDb命名空间。下面是ADO.NET连接access数据库的字符串:

Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\wwwroot\data\test.mdb

其中test.mdb是放在网站根目录的data目录下的access数据库,mdb是它的扩展名。在asp.net中连接它,我们使用OleDbConnection对象:

void Page_Load()
{
string con=“Provider=Microsoft.Jet.OleDb.4.0;Data Source=“;
con+=Server.MapPath(“~/data/test.mdb“);//影射物理路径
OleDbConnection con=new OleDbConnection(con);//实例化OleDbConnection类
//其它代码……
}
这里我们声明了一个string型变量con用来存储数据库连接,用Server.MapPath()方法得到test.mdb数据库的物理路径,注意:Server.MapPath()可以在Page_Load中直接使用,而在其它地方则为:System.Web.HttpContext.Current.Server.MapPath()。这个方法的参数是需要影射的虚拟路径,~是网站的根目录。
当然为了便于引用以及更改它,我们通常把这个连接字符串放在Web.config配置文件中,也可以放在App_Code里的文件中。如:
public class TheStr
{
static string acc=“Provider=Microsoft.Jet.OleDb.4.0;Data Source=“;
static string conn=System.Web.HttpContext.Current.Server.MapPath(“~/data/test.mdb“);
public static readonly string con=acc+conn;//readonly表示只读变量
}
这样,以后引用或者修改就非常方便了。引用方法很简单:
void Page_Load()
{
OleDbConnection con=new OleDbConnection(TheStr.con);//TheStr.con就是处理好的连接字符串
//其它代码……
}
如上所示,OleDbConnection构造函数的参数就是一个数据库的连接字符串。当然你可以这样去连接:
void Page_Load()
{
OleDbConnection con=new OleDbConnection(“Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\data\test.mdb“);
//其它代码……
}
非常直观,不过,许多网站空间的虚拟目录不尽相同。后面这种连接方法不推荐使用。以下如无特别说明,我就用~/App_Code/TheStr.cs里的只读变量TheStr.con来连接数据库。在OleDbConnection对象实例化时,真正意义上的连接还没有建立,下例显示连接数据库并打开读取数据:
using System;
using System.Web;
using System.Web.UI;
using System.Data.OleDb;//引入所需命名空间
partial class wap:Page
{
protected string txt;
void Page_Load()
{
string ReadUser=“select * from [user]“;//sql语句
OleDbConnection con=new OleDbConnection(TheStr.con);//实例化连接对象
OleDbCommand cmd=new OleDbCommand();//实例化执行对象
cmd.Connection=con;//初始化数据库连接
try{//捕获异常
con.Open();//打开数据库
cmd.CommandText=ReadUser;//初始化Sql执行语句
OleDbDataReader dr=cmd.ExecuteReader();//实例化阅读器
while(dr.Read())//开始读取
{
txt += dr[“nick“].ToString() + “<br/>“; //处理读取内容
}
dr.Close();//关闭阅读器
}
catch(Exception ex)//异常处理
{
txt=ex.Message;//输出异常的消息
}
finally{
con.Close();//关闭数据库
}
}
}

代码有些复杂,新加了不少知识,ADO.NET比ASP里的ADO改进了许多东西,语法也完全变了样,可能你现在看不懂上面的代码,不过我希望你能理解代码里注释的概念。上面的字符串select * from [user]是sql语句,其实sql也是一门很高深的语言,它也有它的语法和许多函数,这里我们只把sql语句作为字符串交由ADO.NET里的类及方法来处理。下课我将讲一些asp.net里常用的语句。这课我不打算详解代码,还过你还是应该学习一下C#的异常处理。
上例中:
try{}代码块里是可能产生异常的代码。catch{}代码块是如果发生异常需要处理的代码,Exception ex这句声明了一个异常实例ex,而ex.Message里的Message是System.Exception类的一个属性(这里的属性你暂时可以理解为变量),用于获取产生异常的字符串内容。finally{}代码块则是无论是否发生异常,都会处理的代码块。C#提供了许多异常类,这里我们只用来捕获access数据库的语句错误,以便修正。
good 23

发表评论

文明评论,重在参与

暂无评论!
雷军主讲北京车展发布会!SU7 04-24
互联网汽车是什么?有什么优势呢 04-20
从“中国制造”走向“中国智造” 04-20
中国接入互联网30周年,马化腾 04-20
中国互联网30周年发展座谈会在 04-20
用著作权法来保护软件是否真的有 07-28
杀毒软件:只在搞娱乐,从未杀过 07-28
小谈高通反垄断 07-28
印度将推出百元智能机 山寨厂商 07-28
高通垄断之痛:不是国产手机大而 07-28
一张图读懂阿里巴巴眼花缭乱资本 07-28
滴滴打车副总裁张晶离职 高层换 07-28
返回Net教程-返回首页
AD