-
在WIN7X64位下使用Microsoft Access JET4.0驱动,提示未注册,不能打开MDB文件,可使用Microsoft Office Access ACE 12.0驱动,打开accdb的数据库,可在Offfic access2007(2010)中新建辍为.accdb的数据库。
-
如果系统为WIN7 32位的,先下载AccessDatabaseEngine.exe驱动安装文件,直接安装即可。
-
如果WIN7X64位预装的OFFICE2010为32位软件,请按下面的步骤操作,下载AccessDatabaseEngine_X64.exe安装文件,然后,使用命令cmd.exe打开命令窗口,在窗口中输入:”d:\my\AccessDatabaseEngine_X64.exe” /passive,按回车,安装。进入注册表将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths下的MSO.DLL项删除。
二、水晶报表的在c#开发中的注意事项
1、打开解决方案中的App.config文件中的内容,修改为<configuration>
<startupuseLegacyV2RuntimeActivationPolicy="true">//这里为修改的内容,如不修改不能读取数据库
<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>
</startup>
2、使用DataSet数据集创建连接,在报表中使用数据库专家添加到制作的RPT报表中,拖拉字段,进行布局。如果在WIN7X64位系统中不使用这个方法制表,而使用其他方式连接数据库制表,在加载时将出现“无法加载数据库信息”的错误。
3、保存信息:
try
{
stringstrCon=@" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source= " + Application.StartupPath+"\\hjzqz.mdb;Persist Security Info=False";
OleDbConnectionmyConn=newOleDbConnection(strCon);
stringstrCom=Xinxi_Tiqu();//提取连接字符
// myDataSet = new DataSet();
myConn.Open();
OleDbCommandmyCommand=newOleDbCommand(strCom,myConn);
// myCommand.Fill(myDataSet, "hjzqz");
stringjilu=myCommand.ExecuteNonQuery().ToString();
myConn.Close();
if (jilu=="1")
{
kaishihao1=kaishihao;
xinbh= (Convert.ToInt64(kaishihao1)+ 1).ToString();
if(xinbh!="")
{
conf.SetIni("section","kaishihao",xinbh,pathfile);//保存新的编号到INI
}
MessageBox.Show("保存申请信息成功,可以开始打印!","提示");
returntrue;
}
else
{
MessageBox.Show("保存申请信息失败!你将不能打印出申请表!","提示");
returnfalse;
}
publicvoidPrintSQB()//打印
{
try
{
GetConnect("zqz",3);
CryZqzcrl=newCryZqz();
crl.SetDataSource(myDataSet.Tables[0]);
// crl.PrintOptions.PrinterDuplex =CrystalDecisions.Shared.PrinterDuplex.Vertical;//双面打印 Horizontal为上翻
// crl.PrintToPrinter(1, true, 0, 0);//直接打印
RptViewrptw=newRptView();
rptw.crystalReportViewer1.ReportSource=crl;
rptw.Show();
}
//数据库连接
privatevoidGetConnect(stringtablename,intfs)
{
stringstrCon=@" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source= " + Application.StartupPath+"\\hjzqz.mdb;Persist Security Info=False";
OleDbConnectionmyConn=newOleDbConnection(strCon);
stringstrCom="";
try
{
// string strCon =" Provider = Microsoft.Jet.OLEDB.4.0 Data Source = " + Application.StartupPath +"\\hjzqz.mdb";
switch(fs)
{
case 1:
strCom=" SELECT * FROM " +tablename;
break;
case 2:
strCom=" SELECT top 10 * FROM " + tablename +" order by id desc";
break;
case3:
strCom=" SELECT top 1 * FROM " +tablename+" order by id desc";
break;
default:
break;
}
myDataSet = newDataSet();
myConn.Open();
OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);
myCommand.Fill(myDataSet,"pcs");
myConn.Close();
}
catch
{
myConn.Close();
MessageBox.Show("连接数据库失败!");
}
}
privatevoidDelaye(intiInterval)
{
DateTimenow =DateTime.Now;
while(now.AddMilliseconds(iInterval)>DateTime.Now)
{
Application.DoEvents();
}
return;
}