```protected void Page_Load(object sender, EventArgs e)
{
DB.setDBPath(Page.Server.MapPath("/App_Data/TestModel.accdb")); //连接ACCESS表
OleDbConnection myconn = DB.createConnection();
myconn.Open();
string select = "select * from UserInfo";
OleDbCommand cmd = new OleDbCommand(select, myconn);
OleDbDataReader a = cmd.ExecuteReader();
string b=a[0].ToString();
a.Close();
}
ACCESS数据库中是有数据的,然后用OleDbDataReader对象就是读取不出来,如string b=a[0].ToString(),调试时报错:
“System.InvalidOperationException”类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理
其他信息: 不存在此行/列的数据。
但是对OleDbDataReader对象调用Read()方法,返回True,表明不是空表。
于是我换了种方式,我用 DataSet访问则可以显示在GV控件上,代码如下:
DB.setDBPath(Page.Server.MapPath("/App_Data/TestModel.accdb"));
OleDbConnection myconn = DB.createConnection();
myconn.Open();
string selectStr = "select * from UserInfo";
OleDbDataAdapter oda = new OleDbDataAdapter(selectStr, myconn);
DataSet ds = new DataSet();
oda.Fill(ds);
GV.DataSource = ds;
GV.DataBind();
myconn.Close();
求大神们指点下为什么OleDbDataReader会出问题,谢谢!!!!
初学者。。。