64位win2003,excel数据源读取

suifeng108 2008-07-25 07:15:32
各位大虾,我在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();
...全文
764 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
suifeng108 2008-07-26
  • 打赏
  • 举报
回复
结贴
suifeng108 2008-07-26
  • 打赏
  • 举报
回复
谢谢各位参与
我的VS环境下,没有【Any Cpu选项卡】这个选项,或者说我不知道怎么调吧

按3L的那方法才解决,我现在把IIS的.NET Framework改成了32位,只是不知道会不会对别的有什么影响
不过先不管那么多了,反正我开发的时候也是32位环境下的
slicelee 2008-07-25
  • 打赏
  • 举报
回复
Microsoft.Jet.OLEDB.4.0 数据库引擎目前没有提供64位版本。
而64位程序又不能调用32位的版本,所以1楼正解:
生成-> 配置管理器-> 平台-> 点击Any Cpu选项卡-> 新建-> 新建平台-> X86
S314324153 2008-07-25
  • 打赏
  • 举报
回复
另外,LZ的IIS用的是什么.Net Framework,好像64位的.NET Framework不行,目前的excel驱动似乎只有32位的

ASP.NET 2.0,32 位版本
要运行 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位的
S314324153 2008-07-25
  • 打赏
  • 举报
回复
try:
生成-> 配置管理器-> 平台-> 点击Any Cpu选项卡-> 新建-> 新建平台-> X86

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧