一 到如下路径:C:\Program Files\Common Files\Microsoft Shared\DAO 找到扩展名为DLL或dll的两个
文件。我的这两个文件分别是 DAO350.DLL dao360.dll 二 将你刚才找到的两个文件复制到你安装 “Office办公软件”的“OFFICE11”文件夹下面。例如我是复到如下路径:G:\Office2003\OFFICE11,因为我是将Office2003安装到G盘Office2003里面。 三 在注册表里注册这两个文件: 因为我是将这两个文件都放到了G:\Office2003\OFFICE11\ 下面。 在开始菜单运行里输入:如下注册路径: Regsvr32.exe "G:\Office2003\OFFICE11\DAO350.DLL" Regsvr32.exe "G:\Office2003\OFFICE11\dao360.dll" 四 还有一种
方法是来自百度的回答 将C:\ProgramFiles\CommonFiles\MicrosoftShared\DAO下的dao360.dll和Msado15.dll复制到C盘根目录下。然后运行: Regsvr32.exe "C:\dao360.dll" Regsvr32.exe "C:\Msado15.dll" 就OK了,注意,dao360.dll和Msado15.dll也打以复制到如C:\ee下,相就的运行就改变了: Regsvr32.exe "C:\ee\dao360.dll" Regsvr32.exe "C:\ee\Msado15.dll" 这样的目的的是防止路径中出现空格造成无法识别dao360.dll和Msado15.dll的真正路径。 原理:access导入xls,txt.doc等文件时,需要调用dao360.dll和Msado15.dll这两个文件,而有的盗版的office无法注册这两个文件的信息,造成加载dll失败。 五择自网上 如何处理MS Access 2000+ 以上的出现的“加载DLL”错误信息最近在将外部
数据库(EXCEL、文本文件、其他数据库文件)导入到MS ACCESS 2000+中的时候就遇到“加载DLL”的错误信息,开始以为缺少什么文件,于是用安装文件进行了修复,但是结果还是一样。于是,只好Google 一下,发现了一个很好的解决方案: http://support.microsoft.com/kb/833220/zh-cn =============================== 症状 当您尝试在 Microsoft Access 2002, 使用 Microsoft Access 向导, 例如导入文本向导或导入表格向导, 可能会收到以下错误信息。 当您尝试打开由切换面板管理器, 创建窗体可能会收到以下错误信息: 加载DLL 中错误 原因 如果缺少 Microsoft Data Access Components (MDAC) 文件、 损坏 MDAC 文件或计算机上过时 MDAC 文件可能发生此问题。 解决方案 要解决此问题, 请使用下列方法之一: 方法1: 注册需要 Dao 360 .dll 文件和 Msado15.dll 文件 您可能需要通过使用 Regsvr32 .exe 程序注册 Dao 360 .dll 文件和 Msado15.dll 文件。 要这样做, 请按照下列步骤 *** 作: 1.开始,依次 运行 。 2.在 运行 对话框中, 在 打开 框中, 键入以下命令, 然后单击 确定 : Regsvr 32 .exe " <<Dao360.dll_Path >>" Regsvr 32 .exe " <<Msado15.dll_Path >>" <<Dao360.dll_Path >>占位符是 Dao 360 .dll 文件的绝对路径。 <<Msado15.dll_Path >>占位符是 Msado15.dll 文件的绝对路径。 以下示例显示如何可能指定一个绝对路径: Regsvr32 .exe " C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll " Regsvr32 .exe " C:\ProgramFiles\Common Files Files\system\ado\Msado15.dll " 如果成功注册 Dao 360 .dll 文件, 收到信息是类似于以下消息: C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll 中的 DllRegisterServer 成功。 如果成功注册 Msado15.dll 文件, 收到信息是类似于以下消息: 在C:\ProgramFiles\Common Files Files\system\ado\Msado15.dll DllRegisterServer 成功。 3.单击 确定 。 方法2: 安装最新版本的 MDAC。 =============================================== 经过试验,发现两个方法都行不通。但是,最后还是从方法1中得到启发,因为C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll确实是存在,但是注册不上。最后考虑是否由于路径中的空格符引起,于是将这个文件拷贝到系统目录(windows\system32)下(当然也可以是任何非空格符路径下)。再次使用Regsvr32 命令,终于成功了。 接下来,MS ACCESS 2000+的DLL 错误问题也得到了解决。看来在安装的时候就留下了隐患,只是没有用到就忽略了罢。 六相关知识择自网上 大家注册DLL或OCX的方法应该用Regsvr32.exe,用得多了大家一定会觉得在运行中写一长串东西很是烦人吧!这里我向大家介绍一种麻烦一次方便“一生”的方法。这个方法只要右击你想注册或反注册的OCX或DLL就可以了。它的原理是通过修改注册表使右击OCX或DLL文件时出现注册和反注册的菜单项。 下面介绍这个方法 注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Register。你会发现Register就是右键d出的菜单名,再在其下建command,修改其“默认值”为Regsvr32 %1 反注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Unregister,再在其下建command,修改其“默认值”为Regsvr32 %1 /u。 注册和反注册OCX文件打开HKEY_CLASSES_ROOR\OCXfile,然后其它的方法和上面的一样的了。 右击一个OCX或DLL试试看,出现了我们想要的Register和Unregister菜单项。 Activex注册和反注册工具——Regsvr32 使用过Activex的人都知道,Activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的Activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在Windows的system文件夹下有一个regsvr32.exe的程序,它就是Windows自带的Activex注册和反注册工具。它的用法为: regsver32详解 regsvr32 [/s] [/n] dllname 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。 参数有如下意义: /u——反注册控件 /s——不管注册成功与否,均不显示提示框 /c——控制台输出 /i——跳过控件的选项进行安装(与注册不同) /n——不注册控件,此选项必须与/i选项一起使用 如笔者要注册一amovie.ocx控件,则打入regsvr32 amovie.ocx即可,要反注册它时只需使用regsvr32 /u amovie.ocx就行了。 regsvr32 /s APIINEX.dll 注册DLL文件regsvr32 /s /u APIINEX.dll 卸载DLL文件regsvr32 Shortcut.ocx 注册ocx文件regsvr32 /u Shortcut.ocx 卸载ocx文件/s .dll,.ocx 注册成功后不显示提示信息。/u .dll,.ocx 卸载 可把注册控件的命令放入批处理文件中。 regedit /s adofre15.reg 直接把注册信息注入注册表。注册ado与dao试试
一、注册ADO:
1.单击“开始”->“运行”
2.输入 REGSVR32 "C:\Program Files\Common Files\System\ado\msado15.dll"
3.单击“确定”按钮
二、注册DAO:
1.单击“开始”->“运行”
2.输入 REGSVR32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
3.单击“确定”按钮
在U3D中要访问Access数据库,我们需要用到两个dll,System.Data.dll和System.EnterpriseServices.dll,缺一不可。我们找到这两个dll放到u3d的Plugins文件夹下面。
下面我们创建一个Access数据库版本是07样式是*.accdb(03版本的Access数据库的样式为*.mdb)在我们进行code的时候,要根据不同的版本进行判断啦,对于不同的Access数据库版本,我们要对应不懂的文件后缀名。要不然会提示你数据库文件是未知文件。
下面是读取Access的一个demo,其他的修改,添加数据都是在修改他的sql语句啦。简单的代码如下:
using UnityEngine
using System.Collections
//引入命名空间
using System
using System.Data
using System.Data.Odbc
public class RaderData : MonoBehaviour
{
/// <summary>
/// 声明一个接受读取数据字段值的变量
/// </summary>
string text = string.Empty
public void Start()
{
//读取数据文件。
ReadStudent(Application.dataPath + “/Wild boar.accdb”)
}
/// <summary>
/// 读取表数值的函数
/// </summary>
/// <param name=”filetoread”>数据文件的路径</param>
internal void ReadStudent(string filetoread)
{
//声明连接数据库的字段
string connection = “Driver={Microsoft Access Driver (*.mdb, *.accdb)}DBQ=” + filetoread
//从表中查询所有数据
string sqlQuery = “select * from Student”
//打开数据库
OdbcConnection con = new OdbcConnection(connection)
//对数据库进行 *** 作
OdbcCommand cmd = new OdbcCommand(sqlQuery,con)
//根据表名,读取数据到一个临时表
DataTable dt = new DataTable(“Student”)
//try catch finally进行了异常处理,这个是好习惯,嘿嘿
try
{
//打开数据库
con.Open()
//读取数据
OdbcDataReader reader = cmd.ExecuteReader()
//把数据加载到临时表
dt.Load(reader)
//在使用完毕之后,一定要关闭,要不然会出问题
reader.Close()
//关闭数据库
con.Close()
}
catch (Exception ex)
{
Debug.Log(ex.ToString())
}
finally
{
//判断数据库是否打开,如果打开就关闭。
if (con.State!=ConnectionState.Closed)
{
con.Close()
}
//释放数据库资源
con.Dispose()
}
if (dt.Rows.Count>0)
{
//读取数据
for (int i = 0i <dt.Rows.Counti++)
{
text = dt.Columns[0].ColumnName + ” : ” + dt.Rows[dt.Columns[0].ColumnName].ToString() + “ | ” + dt.Columns[1].ColumnName + ” : ” + dt.Rows[dt.Columns[1].ColumnName].ToString() + “ | ” + dt.Columns[2].ColumnName + ” : ” + dt.Rows[dt.Columns[2].ColumnName].ToString() + “ | ” + dt.Columns[3].ColumnName + ” : ” + dt.Rows[dt.Columns[3].ColumnName].ToString()
Debug.Log(dt.Columns[0].ColumnName + ” : ” + dt.Rows[dt.Columns[0].ColumnName].ToString() + “ | ” + dt.Columns[1].ColumnName + ” : ” + dt.Rows[dt.Columns[1].ColumnName].ToString() + “ | ” + dt.Columns[2].ColumnName + ” : ” + dt.Rows[dt.Columns[2].ColumnName].ToString() + “ | ” + dt.Columns[3].ColumnName + ” : ” + dt.Rows[dt.Columns[3].ColumnName].ToString())
}
}
}
public void OnGUI()
{
GUI.Label(new Rect(10,10,500,200),text)
}
}
评论列表(0条)