问题1.在利用C Sharp(操作系统为Windows7 64位)将Excel数据导入到SQL Server 2005中时,出现如下提示:
解决办法:VS菜单栏 生成→“配置管理器→平台→新建→x86。
以上问题是最初遇到的,但是随着程序之旅的缓慢进行,发现以上问题早已过时,Jet.OLEDB.4.0已被慢慢废弃,WinForm操作Excel的连接已变成ACE.oledb.12.0,但是运行数据导入时照样会提示出错误“未在本机注册Microsoft.ace.oledb.12.0提供程序”,解决的办法是下载并安装Microsoft Access Database Engine(也就是官网上说的Microsoft Access 2007数据库引擎可再发行程序包),现有的版本是access database engine 2007和access database engine 2010(包括x86和x64)两种,出于向前兼容的考虑,在系统开发中一般使用03格式的导入数据格式(.xls),这时需要安装access database engine 2007(做开发的机子上装的是Office 2013,测试通过),问题得到解决!
问题2:在SQL Server2005中编写自动增长的字符串型主键的存储过程时,设定的返回结果是字符串,运行时出现如下错误提示:
问题解决:后来才知道,存储过程返回的只能是int形式的结果,如上图所示,存储过程返回的E000001是字符型,但最终要以int的形式返回,本例中最终返回-1,折腾无结果之后,将存储过程改为返回字符串的标量值函数。
问题3:本地机子安装了打包程序后,运行出现如下错误
问题解决:重新安装如下水晶报表插件
CRRedist2008_x64.msi
CRRedist2008_x64_chs.msi
CRRedist2008_x86.msi
CRRedist2008_x86_chs.msi
问题4:在本地计算机上未注册Microsoft.ACE.OLEDB.12.0提供程序
描述:在VS程序连接Access数据库(db.accdb文件时),报错信息如上,解决办法是下载并安装AccessDatabaseEngine.exe。
以下分别问access2003和access2007的连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xx.mdb;
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xx.accdb;
注意,如果是Windows7系统64位,如果解决方案平台是Any CPU,则需要将解决方案平台改为x86,如果没有x86,则需要新建。此外还要将db.accdb数据库文件移动到bin→x86→Debug文件夹内!连接字符串为:
str=Application.StartPath.ToString();
str+=@"\db.accdb";