桦山涧

桦山涧
Asp.net ---->知识改变命运!
posts - 261, comments - 171, trackbacks - 6, articles - 3
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net 与access数据库结合 (转载)

Posted on 2006-08-11 14:05 桦林 阅读(...) 评论(...) 编辑 收藏

asp.net 与access数据库结合
 第一次跟别人做东西,自己的一点经验,写下来,虽然比较菜,但还是要做点记录,如有错误缺漏,请各位不吝赐教,谢谢: )
以前都是用asp.net 与sqlServer2000 结合做东西的,这次是用access,虽然是第一次用,但感觉与sqlServer2000的用法区别不大,以下对二者的用法做比较:
SqlServer2000:
   1>命名空间  using System.Data;
                          using System.Data.SqlDb;
   2>连接语句等      在之前的随笔中有记录,这里不再记录了。

主要记录Access用法:
   1>命名空间:using System.Data;
                            using System.Data.OleDb;

   2>连接语句:
              string conString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
             conString+=Server.MapPath(@"\Jlgps\DB\Jlgps.mdb");
      //以上语句中,“@”表示绝对的字符串,也就是说"\"在这就不需用"\\"来表示了
     第一个"\"表示是从根目录(如C:\Inetpub\wwwroot)下找"Jlgps"这个目录,如果不加"\"
     表示从当前应用程序目录下(Jlgps)找,那么这里就要写成@"DB\Jlgps.mdb"了.
      建议用后者,前者取出来可能是绝对路径,后者则是相对路径,出错几率较小。
             OleDbConnection con=new OleDbConnection(conString);
              con.Open();//这样数据库连接完毕。

  3>命令对象:
              大致用法与sqlServer的相同,只是名称有点变化:
             sqlserver的以Sql开头,如SqlCommand cmd=new SqlCommand();
             而access的都以 OleDb开头,如:OleDbCommand,OleDbDataReader....等

  4>涉及到access数据库的用户名和密码的问题:
             开始我的access的mdb文件没有设置用户名和密码,用以上的连接语句可以
          连接成功,后来我想为了稍微安全点,想设置数据库mdb文件的打开密码,于
        是我便打开mdb文件,在"工具",-"安全"-"设置数据库密码"中设好了密码,但是
        之后便连接不上数据库,我便试着在连接语句中加类似SqlServer中的uid,pwd等,
        但都没成功,最后经过一番尝试,找到了一个解决问题的方法:
        不要在"工具",-"安全"-"设置数据库密码"中设置密码,而是在"工具",-"安全"-
         "用户与组帐户"中设置密码即可,这样,既实现了打开mdb文件时要输入密码
         ,而数据库连接语句还是原来的,不要做任何改动即可连接数据库。

  5>Access的字段类型问题,Access的字段类型与OleDbType的类型很难一一吻合,
      那么取相似的即可,比如access中的备注型,那么就在OleDbType中用
       LongVarchar即可。比如:
        OleDbParameter    para=new OleDbParameter("@proFun",OleDbType.LongVarChar);
         para.Value=myaddPro.proFun;//一个产品对象的功能描叙参数,备注型
         cmd.Parameters.Add(para);