您的当前位置:首页正文

使用c#访问Access数据库时,提示找不到可安装的 ISAM

2023-11-09 来源:一二三四网

; conn = new OleDbConnection(connectionString); conn.Open(); DataTable dt = conn.GetSchema("Tables"); if (dt != null && dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++ ) { listBox1.Items.Add(dt.Rows[i]["TABLE_NAME"].ToString()); } } conn.Close();

经过多次的修改测试发现,只要连接字符串中出现不可识别的关键字、配置项目名称,就会提示找不到可安装的 ISAM的错误。 上面的连接字符串中的“Pwd”在SQL Server的连接字符串中是可用的,但是在Access中却是不可识别的。

例如以下语句也会提示找不到可安装的 ISAM的错误:

connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=db.mdb;abcd=123";

正确的连接字符串写法:

connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.mdb;jet oledb:database password=123;";//或者: connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=db.mdb;jet oledb:database password=123;";

使用c#访问Access数据库时,提示找不到可安装的 ISAM

标签:oledbconnection   conn   connectionstring   isam   access   

小编还为您整理了以下内容,可能对您也有帮助:

找不到可安装的 ISAM,怎么办

您好,

首先,不知道您的连接字符串是否是直接复制过来的,如果是的话,Provider=Microsoft.Jet.OLEDB.4.0; Jet大写。

Data Source 中间有空格.

另外不知道您为什么使用Server.MapPath ("mydata.mdb"); 这种写法,如果是Access文件的话,直接写相对路径就可以了。

也就是,
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydata.mdb";
就可以了。

找不到可安装的 ISAM,怎么办

您好,

首先,不知道您的连接字符串是否是直接复制过来的,如果是的话,Provider=Microsoft.Jet.OLEDB.4.0; Jet大写。

Data Source 中间有空格.

另外不知道您为什么使用Server.MapPath ("mydata.mdb"); 这种写法,如果是Access文件的话,直接写相对路径就可以了。

也就是,
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydata.mdb";
就可以了。

数据库连不上,说是找不到可安装的 ISAM

Acess数据库吗?

找不到可安装ISAM

原因

此错误通常是由 MSACC20.INI 文件或计算机上损坏的动态链接库 (.DLL) 文件中正确的条目。 如果从 Microsoft Access Service Pack 2.0 更新 BTRV200.DLL 使用与原始版本的 MSAJT200.DLL 也可能发生错误。

解决方案

检查 MSACC20.INI 文件

要这样做, 请按照下列步骤操作:

1. 在文本编辑器, (如记事本) 打开 MSACC20.INI 文件。

2. 找到 [ 安装 ISAMs ] 部分并注意 ISAM 驱动程序的路径: [Installable ISAMs]

Paradox 3.X=C:\Windows\System\Pdx200.dll

Paradox 4.X=C:\Windows\System\Pdx200.dll

FoxPro 2.5=C:\Windows\System\Xbs200.dll

FoxPro 2.6=C:\Windows\System\Xbs200.dll

FoxPro 2.0=C:\Windows\System\Xbs200.dll

dBASE III=C:\Windows\System\Xbs200.dll

dBASE IV=C:\Windows\System\Xbs200.dll

Btrieve=C:\Windows\System\Btrv200.dll

3. 启动 WindowsExplorer (或文件管理器) 并找到 ISAM 驱动程序 MSACC20.INI 文件中列出。 如果没有找到驱动程序在指定位置, 您需要重新安装 ISAM 驱动程序。 要这样做, 请按照下列步骤操作: a. 文本编辑器中打开 MSACC20.INI 文件并注释 ISAM 部分由进入分号 (;) 中的每行, 例如前面: [Installable ISAMs]

;Paradox 3.X=C:\Windows\System\Pdx200.dll

;Paradox 4.X=C:\Windows\System\Pdx200.dll

;FoxPro 2.5=C:\Windows\System\Xbs200.dll

;FoxPro 2.6=C:\Windows\System\Xbs200.dll

;FoxPro 2.0=C:\Windows\System\Xbs200.dll

;dBASE III=C:\Windows\System\Xbs200.dll

;dBASE IV=C:\Windows\System\Xbs200.dll

;Btrieve=C:\Windows\System\Btrv200.dll

b. 保存 MSACC20.INI 文件并关闭文本编辑器。

c. 启动 Microsoft Access 安装程序。

d. 单击 " 添加/删除程序 " 按钮。

e. 单击以清除 " ISAM 驱动程序 " 以卸载安装 ISAM 驱动程序, 然后单击继续。 按照说明在屏幕上以完成卸载过程。

备注: 如果禁用 ISAM 驱动程序复选框, 退出安装, 重命名下列文件, 然后重新开始从步骤 c: BTRV200.DLL

PDX200.DLL

XBS200.DLL

f. 启动 Microsoft Access 安装程序, 重新安装 ISAM 驱动程序。

g. 单击 " 添加/删除程序 " 按钮。

h. 单击以选中 " ISAM 驱动程序 " 框, 然后单击 " 继续 "。 按照说明来完成安装屏幕上。 此安装过程会更新 MSACC20.INI 文件中 [ 安装 ISAMs ] 节以便正确设置。

4. 如果错误消息持续此时, 完全卸载并重新安装 MicrosoftAccess。 要这样做, 请按照下列步骤操作: a. 备份所有用 MicrosoftAccess 创建 .MDB 文件。

b. 启动 WindowsExplorer (或文件管理器)。

c. 找到并重命名下列文件 (所有但之一这些文件都位于 \Windows\System 目录):

BTRV200.DLL

COMPOBJ.DLL

CTL3D.DLL

MSAJT200.DLL

MSAJU200.DLL (file located in Access directory)

PDX200.DLL

STDOLE.TLB

STORAGE.DLL

TYPELIB.DLL

XBS200.DLL

如果使用 Windows 95, 将以下文件从 \Windows\Sysbckup 文件夹 (隐藏文件夹) 到 \Windows\System 文件夹: COMPOBJ.DLL

CTL3D.DLL

STDOLE.TLB

STORAGE.DLL

TYPELIB.DLL

d. 启动 Microsoft Access 安装程序。

e. 单击全部删除按钮。

f. 当收到提示 " 是否确定要删除此应用程序, ", 单击 " 是 "。

g. 要完成删除过程在屏幕上按照说明。

h. 重新启动 Microsoft Access 安装。 按照说明要安装程序屏幕上。

5. 如果您使用 Microsoft Windows 3.1 并且错误消息持续此时, 通过重建 Windows 注册表解决问题。

希望能帮你解决问题!

怎样用access配置成数据库服务器

ACCESS数据库是个文件来的,不用配置的了,在解决方案中添加你创建的ACCESS数据文件中,系统会提示你是否创建App_Data目录并将ACCESS文件添加到此目录中,选择"是"就可以了,再在程序中创建连接到此文件的连接字符串即可.(此文后面有在web.config中配置的方法)例如
String con = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + System.Web.HttpContext.Current.Server.MapPath("App_Data/YouAccessData.mdb");

然后就像用其它数据库一样用了.

完全示例:

C#连接Access程序代码:

usingSystem.Data;
usingSystem.Data.OleDb; stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"DataSource=C:\ASPNET\YouAccessData.mdb";
OleDbConnectionobjConnection=newOleDbConnection(strConnection);
//或
//stringstrConnection = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + System.Web.HttpContext.Current.Server.MapPath("App_Data/YouAccessData.mdb");
objConnection.Open();
objConnection.Close();

解释:

C#连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!

strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。

“Provider=Microsoft.Jet.OleDb.4.0;”是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的。
“Data Source=C:\BegASPNET\Northwind.mdb”是指明数据源的位置,他的标准形式是“Data Source=MyDrive:MyPath\MyFile.MDB”。

PS:

1.“+=”后面的“@”符号是防止将后面字符串中的“\”解析为转义字符。

2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:

strConnection+="Data Source=";strConnection+=MapPath("Northwind.mdb");

3.要注意连接字符串中的参数之间要用分号来分隔。

“OleDbConnection objConnection=new OleDbConnection(strConnection);”这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。

“objConnection.Open();”这用来打开连接。至此,与Access数据库的连接完成。

再来一个示例:
using System.Data.OleDb;
using System.Data;
//连接指定的Access数据库
String ConnString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=App_Data\YouAccessData.mdb";
//SQL语句
String SQLString ="select * from TestDB";
//创建一个OleDbConnection对象
System.Data.OleDb.OleDbConnection OleDBConn1 = new System.Data.OleDb.OleDbConnection(ConnString);
//创建一个DataSet对象
DataSet DataSet1 = new DataSet();
//创建一个OleDbDataAdapter对象
System.Data.OleDb.OleDbDataAdapter OleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter(SQLString,OleDBConn1);
//打开连接
OleDBConn1.Open();
//通过OleDbDataAdapter对象填充数据集
OleDbDataAdapter1。Fill(DataSet1,"TT");

另外是在web.config中如何使用access数据库连接了,估计就是你所要的了:

一: 一种是通过使用 DataDirectory 目录的方法,但是 access 文件必须放在 ASP.NET 的特殊目录中,如 app_data ;

<addname="access"connectionString="Provider=Microsoft.Jet.Oledb.4.0;
Data Source=|DataDirectory|db.mdb"/>

二:另外一种方法则比较灵活,具体方法是:在 web.config 文件中保存两个字符串,一个是驱动字符串,另一个是 access 文件的相对路径;

使用时用 Server.MapPath 来获取绝对路径然后组合出来的连接字符串就可以使用了;

在web.config中的写法如下:

<appSettings>
<add key="ConnStr" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="/AppData/db.mdb"/>
</appSettings>

程序中的数据访问类中我把"ConnStr"和"dbPath"取出来再连接成一个字符串
代码如下:

/// <summary>
/// (静态)返回数据库连接串。
/// </summary>
protected static string GetConnString()
{
return
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]+ System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["dbPath"])+";";
}

三:直接写数据库的物理路径

<connectionStrings>
<add name="qxConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Inetpub\wwwroot\web\App_Data\db.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>

注意:Data Source字符的写法一定要正确,否则可能会出现“找不到可安装的ISAM”的错误。

怎样用access配置成数据库服务器

ACCESS数据库是个文件来的,不用配置的了,在解决方案中添加你创建的ACCESS数据文件中,系统会提示你是否创建App_Data目录并将ACCESS文件添加到此目录中,选择"是"就可以了,再在程序中创建连接到此文件的连接字符串即可.(此文后面有在web.config中配置的方法)例如
String con = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + System.Web.HttpContext.Current.Server.MapPath("App_Data/YouAccessData.mdb");

然后就像用其它数据库一样用了.

完全示例:

C#连接Access程序代码:

usingSystem.Data;
usingSystem.Data.OleDb; stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"DataSource=C:\ASPNET\YouAccessData.mdb";
OleDbConnectionobjConnection=newOleDbConnection(strConnection);
//或
//stringstrConnection = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + System.Web.HttpContext.Current.Server.MapPath("App_Data/YouAccessData.mdb");
objConnection.Open();
objConnection.Close();

解释:

C#连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!

strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。

“Provider=Microsoft.Jet.OleDb.4.0;”是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的。
“Data Source=C:\BegASPNET\Northwind.mdb”是指明数据源的位置,他的标准形式是“Data Source=MyDrive:MyPath\MyFile.MDB”。

PS:

1.“+=”后面的“@”符号是防止将后面字符串中的“\”解析为转义字符。

2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:

strConnection+="Data Source=";strConnection+=MapPath("Northwind.mdb");

3.要注意连接字符串中的参数之间要用分号来分隔。

“OleDbConnection objConnection=new OleDbConnection(strConnection);”这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。

“objConnection.Open();”这用来打开连接。至此,与Access数据库的连接完成。

再来一个示例:
using System.Data.OleDb;
using System.Data;
//连接指定的Access数据库
String ConnString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=App_Data\YouAccessData.mdb";
//SQL语句
String SQLString ="select * from TestDB";
//创建一个OleDbConnection对象
System.Data.OleDb.OleDbConnection OleDBConn1 = new System.Data.OleDb.OleDbConnection(ConnString);
//创建一个DataSet对象
DataSet DataSet1 = new DataSet();
//创建一个OleDbDataAdapter对象
System.Data.OleDb.OleDbDataAdapter OleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter(SQLString,OleDBConn1);
//打开连接
OleDBConn1.Open();
//通过OleDbDataAdapter对象填充数据集
OleDbDataAdapter1。Fill(DataSet1,"TT");

另外是在web.config中如何使用access数据库连接了,估计就是你所要的了:

一: 一种是通过使用 DataDirectory 目录的方法,但是 access 文件必须放在 ASP.NET 的特殊目录中,如 app_data ;

<addname="access"connectionString="Provider=Microsoft.Jet.Oledb.4.0;
Data Source=|DataDirectory|db.mdb"/>

二:另外一种方法则比较灵活,具体方法是:在 web.config 文件中保存两个字符串,一个是驱动字符串,另一个是 access 文件的相对路径;

使用时用 Server.MapPath 来获取绝对路径然后组合出来的连接字符串就可以使用了;

在web.config中的写法如下:

<appSettings>
<add key="ConnStr" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="/AppData/db.mdb"/>
</appSettings>

程序中的数据访问类中我把"ConnStr"和"dbPath"取出来再连接成一个字符串
代码如下:

/// <summary>
/// (静态)返回数据库连接串。
/// </summary>
protected static string GetConnString()
{
return
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]+ System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["dbPath"])+";";
}

三:直接写数据库的物理路径

<connectionStrings>
<add name="qxConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Inetpub\wwwroot\web\App_Data\db.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>

注意:Data Source字符的写法一定要正确,否则可能会出现“找不到可安装的ISAM”的错误。

使用C#连接Access数据库时,出现问题如下:

D:\test\test\test.mdb 改成 D:\\test\\test\\test.mdb试试

请问在vb系统运行时,找不到可安装的ISAM是怎么回事

是你在安装VB时,选择的是默认安装,没有安装ISAM数据库连接。你应重装VB。

显示全文