Love in coding...

    Free and Susan

统计

积分与排名

techLINKS

友情链接

最新评论

SqlServer与Access之间的数据互导

本次实例为C#在windows程序
主要是简单的实现
已知表名及字段的单表数据互导:
SqlServer->Access
  从SqlServer中查询数据到DataGridView显示
  然后选择Access数据库的相关位置
  将DataGridView的数据导入Access相关表
Access->SqlServer
  选择Access数据库的相关位置
  从Access中查询数据到DataGridView显示
  将DataGridView的数据导入SqlServer相关表

可以在操作界面
   提供相关的用户名及密码的输入栏位
       以提交程序的灵活性
同样可以扩充更多更强功能

主要操作示例代码如下:

public partial class Form1 : Form
    
{
        
public Form1()
        
{
            InitializeComponent();
        }


        
从SQLServer中读取数据

        
将数据导入Access

        
从Access中读取数据

        
将数据导入SQLServer

        
打开选择Access的mdb对话框

        
打开选择Access的mdw对话框

        
清空dataGridView1数据
    }
附其它相关操作:
1.Access创建数据库db1.mdb(略)
2.创建db1.mdb对应的db1system.mdw
  1)打开Access-文件-打开-选择dbq.mdb
    打开按钮的后面的小下拉箭头 选择 以独占方式打开
    打开db1.mdb
  2)工具-安全-工作组管理员-创建
    输入相关信息
    并在相关位置保存mdw为db1system.mdw   
3.创建db1.mdb的相关操作用户及密码
  1)打开Access-文件-打开-选择dbq.mdb
    打开按钮的后面的小下拉箭头 选择 以独占方式打开
    打开db1.mdb
  2)工具-安全-用户与组帐户
    新建用户如dba 并选择隶属于哪个组 默认用户组
    更改登录密码 如设置为abcd
    确定并应用
4.修改用户与组权限
  1)打开Access-文件-打开-选择dbq.mdb
    打开按钮的后面的小下拉箭头 选择 以独占方式打开
    打开db1.mdb
  2)提示输入用户名密码 输入dba,abcd
  3)工具-安全-用户与组权限
    进行相关读取及更新删除设置等

posted on 2007-09-19 11:04 freeliver54 阅读(782) 评论(2)  编辑 收藏 网摘 所属分类: VS技術實踐MS SQLWinForm 开发

评论

#1楼[楼主] 2008-03-19 14:06 freeliver54      

access数据库加密分3种
以下以access xp为例
1、工具 -> 安全-> 加密/解密数据库,打开时无需任何更改
2、工具 -> 安全-> 设置数据库密码,打开密码为 1 打开时需要使用
"provider=microsoft.jet.oledb.4.0;data source=c:\1.mdb;user id=admin;password=;jet oledb:database password=1"
也可以用
"provider=microsoft.jet.oledb.4.0;data source=c:\1.mdb;user id=admin;password=;jet oledb:database password=1"
3、工具 -> 安全-> 用户组与权限 .... ,用户名为 admin 密码为 rr 用户组文件为 c:\system.mdw,打开时需要使用
"provider=microsoft.jet.oledb.4.0;data source=c:\1.mdb;user id=admin;password=rr;jet oledb:database password=1;jet oledb:system database=c:\system.mdw"
也可以用
"provider=microsoft.jet.oledb.4.0;data source=c:\1.mdb;user id=admin;password=rr;jet oledb:database password=1;jet oledb:system database=c:\system.mdw"
  回复  引用  查看    

#2楼[楼主] 2008-04-10 09:34 freeliver54      

C# 操纵Access 常见的数据库访问 解决办法
本文转自:http://www.cnblogs.com/Dragon-China/archive/2007/08/16/857512.html" target="_new">http://www.cnblogs.com/Dragon-China/archive/2007/08/16/857512.html
--------------------------------

1、asp + Access 常见的数据库访问失败问题 Microsoft JET Database Engine 错误 '80004005' 解决办法
打开 FileMonitor 这个监控软件,因为默认情况下它跟踪的信息太多,造成查错如同大海捞针。
这里有个技巧就是先打开监视,然后选择你不需要监控的那些进程,或者一个目录。
点菜单里的: Edit -> Exclude Process 或 Edit -> Exclude Path 排除掉不需要监控的内容。
然后就会发现产生的信息大大减少了。
清空输出,重新开始监控,刷一下网页,再停止监控。很快看到一个信息:

115 15:59:40 DLLHOST.EXE:2804 CREATE C:\WINNT\TEMP\JET5EA6.tmp ACCESS DENIED CR\IUSR_CR

可见是因为 C:\winnt\temp 目录没有对 CR\IUSER_CR 账户开放权限,导致没法创建临时文件(奇怪的是 CR\USER_CR 这个账号访问 Access 的时候需要生成临时文件)。

找到这个目录,设置一下权限。然后刷新网页就会发现好了。
当然具体情况下目录名可能不一定就是这个,但是查错方法就是这样的了,一般都可以解决。






2、用C#访问ACCESS数据库问题
最近这个项目中用到是ACCESS的数据库,开始没有使用密码进行连接:


String connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
connectionString += @"c:\data\db\db.mdb";
OleDbConnection con = new OleDbConnection(connectionString);
con.Open();

是没有任何问题。

为了要使数据库安全一点,不能被用户直接打开编辑,所以想到给Access数据库设置个密码:从菜单“工具”->"安全"->"设置数据库密码",这样设置后就不能正常访问这个数据库了,在连接字符串中加上User ID与Password字段还是不行。最后在"工具"->"安全"->"用户与组的账户"设置好密码,直接不用更改连接字符串就可以连接了。这样处理后,用户打开时提示需要输入密码,也就达到了保护Access库的目的。

转:http://rchen.cnblogs.com/archive/2005/09/19/239785.html" target="_new">http://rchen.cnblogs.com/archive/2005/09/19/239785.html


3、 NTFS权限问题
磁盘分区为NTFS时,只能从access数据库中读取数据,添加修改和删除都出现错误。需要设置access数据库的访问权限,在文件夹的属性中的安全性里添加asp.net帐户,并为其添加写入修改权限。改过之后OK了


4、Access数据库在asp.net程序中相对路径的解决方法

好多朋友被ACCESS数据库在.net程序中相对路径的问题困扰,搞得每次移动程序都要去修改web.config
中数据库连接字符串的数据库路径。好多人的web.config中的写法如下:

<appSettings>
<add key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=E:\web\App_Data\Data.mdb)"></add>
</appSettings>


程序中这样写:

MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]);//注释一下:VS2005和VS2003中的ConfigurationSettings写法不一样,具体区别自己查吧

这样程序运行时经常提示诸如以下的错误:
'C:\WINDOWS\system32\~\App_Data\Data.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 Data Source=~\App_Data\Data.mdb
就算用绝对路径正确,那么移植程序时还要去修改web.config,所以比较麻烦。

也有在web.config中使用象ASP那样的Server.MapPath取数据库路径的,但web.config不认识Server.MapPath,此方法也行不通。

后来通过摸索、参考其它程序,总结出如下方法,可以方便的移植程序路径而不必再去修改ACCESS数据库路径。

我在web.config中的写法如下:

<appSettings>
<add key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="~/App_Data/mydata.mdb"/>
</appSettings>
程序中的数据访问类中我把"SQLConnString"和"dbPath"取出来连接成一个字符串"CONN_STRING_NON_DTC"
public static readonly string CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
这是VS2005中的写法
我把CONN_STRING_NON_DTC定义成static readonly是为了使用方便。
好了,这样就可以随便移植你的程序而不用关心数据库的路径了,一劳永逸啊^_^,适合我这样的懒人!

  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 898126




相关文章:

相关链接: