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

总结在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 ,否则在执行程序的时候就会报错,如下:

只要稍微细心点,这种错误就能够避免。

 

posted @ 2009-04-09 15:41  .NET钉子户  阅读(536)  评论(0)    收藏  举报