您的位置:首页 > 编程语言 > ASP

总结在ASP.NET中连接ACCESS 和SQL Server的方法

2009-04-09 15:41 351 查看
总结在ASP.NET中连接ACCESS 和SQL Server的方法 ,每种数据库给出两种连接方法。

虽然这都是些基础且简单而必须掌握的东西,但我想总还是有人不清楚的,总还是有人要“百度”这些东西的——因为我曾经这样来过。

只有生活过才知道什么是生活。(这话太经典了,突然觉得自己很有文学才华,是不是要申请换到美女多的文学系去?——哎,是不是自恋啦)。

一,连接ACCESS

方法1 :首先定义一个公共类database ,在此类中编写“连接”,代码如下:

public OleDbConnection Getconnection()

{

string SqlStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("App_Data/db.mdb");//连接字符串

OleDbConnection conn = new OleDbConnection(SqlStr);

if (conn.State == ConnectionState.Closed)

conn.Open();

return conn;

}

方法2:将连接字符串写到web.config文件里,其实更多的人喜欢用这种方法,因为web.config文件是不能被远程下载的,这样安全性更高,当然“连接”还是要写到一个公共类中比较好,方便在所有需要的地方被调用!这也符合“面向对象”的风格嘛!具体如下:

① 在web.config中这样配置连接字符串:

<connectionStrings>

<add name="ConnectionString1"connectionString="Provider=Microsoft.Jet.OLEDB.4.0;

Data Source="/>

<add name="ConnectionString2" connectionString="App_Data/db.mdb"/>

</connectionStrings>

② 在公共类database这样编写“连接”:

public OleDbConnection Getconnection()

{

stringsqlstr=System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"].ToString()+HttpContext.Current.Server.MapPath( System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString2"].ToString());

conn = new OleDbConnection(sqlstr);

if (conn.State == ConnectionState.Closed)

conn.Open();

return conn;

}

还有一点,有时为了进一步提高安全性,可以把数据库文件的后缀名改掉,比如将db.mdb改成db.cs或 db.txt 等(这时代安全意识是很重要的,不信你问问那些热恋中的GGMM们——好像说得偏题了)。

二、连接SQL Server

其实原理和ACCESS一样!

方法1,把连接字符串也写在公共类database中,我不想说多少,就给段代码吧!

public SqlConnection GetConnection()

{

string ConStr="server=服务器名称(如 MICROSOF-F6823D\SQLEXPRESS);database=数据库名; User ID=数据库用户名 Pwd=密码”;

con = new SqlConnection(ConStr);

if (con.State == ConnectionState.Closed)

con.Open();

return con;

}

方法2,将连接字符串写到web.config文件里

① 在web.config中这样配置连接字符串

<connectionStrings>

<add name="ConnectionString" connectionString="Data Source=服务器名称(如 MICROSOF-F6823D\SQLEXPRESS);Initial Catalog=数据库名;Persist Security Info=True;User ID=数据库用户名 Pwd=数据库密码"providerName="System.Data.SqlClient"/>

</connectionStrings>

② 在公共类database这样编写“连接”:

public SqlConnection GetConnection()

{

stringConStr=System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

con = new SqlConnection(ConStr);

if (con.State == ConnectionState.Closed)

con.Open();

return con;

}

可能有些新人不知道怎样在配置文件里写连接字符串,我在这介绍一个完全不要手写的方法(这可是经验之谈噢,一般人我不告诉他)。

首先随便找个aspx页面,拖上一个sqldatasource控件,然后给这控件“配置数据源”,把它配置到你要连接的数据库,选择表示也随便选个。过程中会提示你“是否将连接保存到应用程序配置文件中?” ,这个一定要打钩(我们要的就是这个效果嘛),“完成”之后配置文件就自然有了连接字符串啦,最后把刚才拖的那个sqldatasource控件删掉,它已经没利用价值了(典型的过河拆桥^_^),不要担心,sqldatasource控件删掉了,配置文件里的连接字符串可没删掉哦(一个字没写就搞定了吧!我这人实在是太懒,所以懒人有懒人的办法)!

不过这一招在连接ACCESS时失效了,不得不老老实实地手写了,真是太郁闷了!

-------------------------------------------------------------------------------------------------------------------------------------

自学程序以来,一直使用的都是sqlserver数据库,最近帮一朋友做一个access的demo,发现在数据库的连接方面就存在很大差异,在web.config

中配置好连接字符串,然后在后台取,在此我的做法是存两个值,将Provider和assess数据库文件的路径分开存,如下:

<connectionStrings>
<add name="access_con" connectionString="Provider=Microsoft.Jet.Oledb.4.0;data source="/>
<add name="access_path" connectionString="~/App_Data/db.mdb"/>
</connectionStrings>

因为在配置文件中存放的为相对路径,所以在后台读取出来后要将其转换为绝对路径,如下:

private string con_str = ConfigurationManager.ConnectionStrings["access_con"].ConnectionString
+HttpContext.Current.Server.MapPath( ConfigurationManager.ConnectionStrings["access_path"].ConnectionString);

主要的区别就在连接字符串方面,其他的操作和sqlserver基本相同,将命名空间和类换成olddb的就行。在webconfig中写连接字符串时有一点需要注意:

<add name="access_con" connectionString="Provider=Microsoft.Jet.Oledb.4.0;data source="/>

上面代码中的data source 中间一定要有空格,不能写成了datasource ,否则在执行程序的时候就会报错,如下:



只要稍微细心点,这种错误就能够避免。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: