日期:2014-05-18  浏览次数:21038 次

OleDbDataReader!缺少参数?(有详细附图)
首先代码如下:
  OleDbConnection con = new OleDbConnection();
  con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ttest.mdb;Persist Security Info=True;Jet OLEDB:Database Password=wagn";
  OleDbCommand cmd = new OleDbCommand();
  cmd.Connection = con;
  cmd.CommandType = CommandType.Text;
  cmd.CommandText = "select 编号,标题 from logs";
  con.Open();
  OleDbDataReader rs = cmd.ExecuteReader();
  return rs;

提示错误:cmd.ExecuteReader();至少有一个参数没有被指定值!
然后将代码换成:
  OleDbConnection con = new OleDbConnection();
  con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ttest.mdb;Persist Security Info=True;Jet OLEDB:Database Password=wagn";
  OleDbCommand cmd = new OleDbCommand("select 编号,标题 from logs",con);
  con.Open();
  OleDbDataReader rs = cmd.ExecuteReader();
  return rs;
还是一样的!


------解决方案--------------------
是不是Data Source= ¦DataDirectory ¦\ttest.mdb;这里有问题,|表示什么?

你先写个绝对的路径看看
------解决方案--------------------
....
------解决方案--------------------
你跟踪一下看看,可能是你的OleDbConnection 对象为空,根本就没有打开一个数据库连接
查一下数据库连接的字符串是否有问题
------解决方案--------------------
应该是数据库的问题,看看数据路径对不对
------解决方案--------------------
OleDbDataReader rs = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

------解决方案--------------------
OleDbException就是返回OLEDB数据源的警告或错误时引发的异常
你可以catch一下这个异常
然后输出该异常的StackTrace看看
很久没连过Access数据库了,所以也不太确定是怎么回事
但是肯定是数据源的问题
------解决方案--------------------
.......晕
------解决方案--------------------
晕迷,你是不是把数据库打开了在