关于查询两个数据库数据的问题!在Access里面可以正常执行,为什么写在代码里面就出错??

时间:2022-01-03 00:49:40
在Access里面执行这个命令,正常显示数据,为什么一拿到代码里面就会出错???
select b.dwmc,a.* from chuku a,base.kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10# 

代码没有问题,同样的命令,是同一个数据库的可以正常运行!
请问是什么原因?要如何解决?

6 个解决方案

#1


为什么一拿到代码里面就会出错???--------- 代码没有问题
>>>>>>>>>
前后矛盾,给我们看代码,错误行次,错误提示
---------------------------------------------------------------

同样的命令,是同一个数据库的可以正常运行
>>>>>>>>>
不知所云

#2


这个命令,在代码里面运行是正确的!
它只是取同一个数据库里面的数据 
select b.dwmc,a.* from chuku a,kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#

下面这个命令取两个数据库的数据
chuku是当前库(200304)
kehu是另外一个库(base)
select b.dwmc,a.* from chuku a,base.kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#

上面这个命令在Access,SQL视图里面运行,能显示相应的数据
但是拿到代码里面就出错了


出错信息:未处理的“System.Data.OleDbException”类型的异常出现在system.data.dll中


代码如下:
string selectCmd="select b.dwmc,a.* from chuku a,base.kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#";
mdb=new MDB(DateTime.Now.ToString("yyyyMM"));//数据库名为当前年月
DataTable dt=mdb.get_datatable("chuku",selectCmd);//在这里出错了!

//===============类文件==================
public MDB(string db)
{
string str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+path+db+".mdb;User ID=Admin;Password=;";
FileInfo theFile = new FileInfo(Application.StartupPath+path+db+".mdb");
if( theFile.Exists )//如果数据表存在
MyConnection = new OleDbConnection(str);
}

//返回DataTable
public DataTable get_datatable(string table,string sele)
{
if(MyConnection!=null)
{
DataSet ds=new DataSet();
MyConnection.Open();
OleDbDataAdapter cmd=new OleDbDataAdapter(sele,MyConnection);
cmd.Fill(ds,table);
return ds.Tables[0];
}
else return null;
}

#3


怎么没人帮忙啊???

#4


拜托看看啊!!!

#5


see:
http://expert.csdn.net/Expert/topic/1732/1732746.xml?temp=.724682

#6


解决了,thanks

#1


为什么一拿到代码里面就会出错???--------- 代码没有问题
>>>>>>>>>
前后矛盾,给我们看代码,错误行次,错误提示
---------------------------------------------------------------

同样的命令,是同一个数据库的可以正常运行
>>>>>>>>>
不知所云

#2


这个命令,在代码里面运行是正确的!
它只是取同一个数据库里面的数据 
select b.dwmc,a.* from chuku a,kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#

下面这个命令取两个数据库的数据
chuku是当前库(200304)
kehu是另外一个库(base)
select b.dwmc,a.* from chuku a,base.kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#

上面这个命令在Access,SQL视图里面运行,能显示相应的数据
但是拿到代码里面就出错了


出错信息:未处理的“System.Data.OleDbException”类型的异常出现在system.data.dll中


代码如下:
string selectCmd="select b.dwmc,a.* from chuku a,base.kehu b where a.kehuID=b.id and a.DATE1=#2003-04-10#";
mdb=new MDB(DateTime.Now.ToString("yyyyMM"));//数据库名为当前年月
DataTable dt=mdb.get_datatable("chuku",selectCmd);//在这里出错了!

//===============类文件==================
public MDB(string db)
{
string str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+path+db+".mdb;User ID=Admin;Password=;";
FileInfo theFile = new FileInfo(Application.StartupPath+path+db+".mdb");
if( theFile.Exists )//如果数据表存在
MyConnection = new OleDbConnection(str);
}

//返回DataTable
public DataTable get_datatable(string table,string sele)
{
if(MyConnection!=null)
{
DataSet ds=new DataSet();
MyConnection.Open();
OleDbDataAdapter cmd=new OleDbDataAdapter(sele,MyConnection);
cmd.Fill(ds,table);
return ds.Tables[0];
}
else return null;
}

#3


怎么没人帮忙啊???

#4


拜托看看啊!!!

#5


see:
http://expert.csdn.net/Expert/topic/1732/1732746.xml?temp=.724682

#6


解决了,thanks