2 u013937937 u013937937 于 2015.06.06 23:18 提问

C#执行SQL查询Access,,求大神指点

select ForceArea,UnifiedCode_5,(adminArea_8 & adminArea_81) as local,location_71,location_72 from Debris_flow_1
用C#执行这段sql语句的时候,将结果赋值给DataSet,access数据库可以执行,可是在程序里就不执行了,其中要注意哪些??求大神指点
public static DataSet DS(string SQL)
{
DataSet data_NXY = new DataSet();
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Coll_Info.mdb;Jet OLEDB:Database Password=++++;";
OleDbConnection SqlCon = new OleDbConnection(connStr);
SqlCon.Open();
System.Data.OleDb.OleDbDataAdapter ODAter = new OleDbDataAdapter(SQL, SqlCon);
ODAter.Fill(data_NXY);
ODAter.Dispose();
SqlCon.Close();
return data_NXY;
}

4个回答

devmiao
devmiao   Ds   Rxr 2015.06.06 23:19

Microsoft.Jet.OLEDB.4.0
看下驱动有没有装,下载安装mdac
或者换ace 12.0
Data Source=Coll_Info.mdb
看下文件是否找到,建议用绝对路径
Database Password=++++
确认下是否有密码

u013937937
u013937937 这些都没有问题,其他的都可以使用,就是加了(adminArea_8 & adminArea_81) as local之后,不执行了
大约 3 年之前 回复
tabe123
tabe123   Rxr 2015.06.07 00:17

DataSet 只是一个临时的对象,你想得到程序的运行结果是样的 你catch一下这个异常 应该能解释清楚 数据库一般操作都要catch一下异常的

frank_20080215
frank_20080215   2015.06.07 14:24

ODAter.Dispose(); -- 注释掉;
data_NXY这个赋值给那个变量?

u013937937
u013937937 赋值给Datagridview,,问题自己解决了
大约 3 年之前 回复
xuwei198603
xuwei198603   2015.06.08 15:23

把方法改成这样你就知道为什么了。

public static DataSet DS(string SQL)
{
try
{
DataSet data_NXY = new DataSet();
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Coll_Info.mdb;Jet OLEDB:Database Password=++++;";
OleDbConnection SqlCon = new OleDbConnection(connStr);
SqlCon.Open();
System.Data.OleDb.OleDbDataAdapter ODAter = new OleDbDataAdapter(SQL, SqlCon);
ODAter.Fill(data_NXY);
ODAter.Dispose();
SqlCon.Close();
return data_NXY;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message)
throw;
}

}

u013937937
u013937937 谢谢大神,,,问题解决了,其他部分出的问题
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!