各位大虾,我在64位win2003 SP2的电脑上,想用excel做数据源直接读取,使用以下代码,总是报错
电脑上已安装office2003
WindowsServer2003.WindowsXP-KB948459-v2-x64-ENU.exe这个补丁也打了
还是没有任何作用System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\d1.xls;Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(strConn);
con.Open();
DataSet ds = null;
try
{
ds = new DataSet(); string strExcel = "select * from [Sheet1$]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, con);
myCommand.Fill(ds, "table1");
con.Close();
}
catch (Exception ex)
{
con.Close();
} DataGrid1.DataSource = ds.Tables["table1"].DefaultView;
DataGrid1.DataBind();
电脑上已安装office2003
WindowsServer2003.WindowsXP-KB948459-v2-x64-ENU.exe这个补丁也打了
还是没有任何作用System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\d1.xls;Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(strConn);
con.Open();
DataSet ds = null;
try
{
ds = new DataSet(); string strExcel = "select * from [Sheet1$]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, con);
myCommand.Fill(ds, "table1");
con.Close();
}
catch (Exception ex)
{
con.Close();
} DataGrid1.DataSource = ds.Tables["table1"].DefaultView;
DataGrid1.DataBind();
生成-> 配置管理器-> 平台-> 点击Any Cpu选项卡-> 新建-> 新建平台-> X86
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作:1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。 这个是如果这种方法不成功的话,可以切回64位ASP.NET 2.0,64 位版本
要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作:1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令禁用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。
注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 v2.0.50727。如果是其他版本的.Net Framework,把 \v2.0.50727\ 改一下就行比如1.1的就是\v1.1.4322\
而64位程序又不能调用32位的版本,所以1楼正解:
生成-> 配置管理器-> 平台-> 点击Any Cpu选项卡-> 新建-> 新建平台-> X86
我的VS环境下,没有【Any Cpu选项卡】这个选项,或者说我不知道怎么调吧按3L的那方法才解决,我现在把IIS的.NET Framework改成了32位,只是不知道会不会对别的有什么影响
不过先不管那么多了,反正我开发的时候也是32位环境下的