1  protected System.Web.UI.WebControls.Label con;
public OleDbDataReader dr;
private void Page_Load(object sender, System.EventArgs e)
{
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ Server.MapPath("new.mdb"));   
string strSel = "Select * from ari where id=14";
OleDbCommand MyComm = new OleDbCommand(strSel,myConnection);
myConnection.Open();
dr = MyComm.ExecuteReader();
con.Text=dr["con"].ToString();
dr.Close();
 myConnection.Close();
错误提示为 
不存在此行/列的数据。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
异常详细信息: System.InvalidOperationException: 不存在此行/列的数据。
表名ari 字段con 为text类型 肯定没错 
????2  有时候对access数据库进行操作的时候 会产生同名的.ldb文件
该文件是什么? 什么情况下会出现改文件 产生该文件后 无法对数据库文件修改字段结构

解决方案 »

  1.   

    1.请确保datareader读出来有数据,
    2.那个是Access的log文件,当你打开mdb文件就会产生。
      

  2.   

    while (dr.Read ())
    {
       con.Text=dr["con"].ToString();}
    dr.close();
      

  3.   

    1 如何确保datareader读出数据?关键代码都贴出来了
    2 该文件我发现 用aspx文件 有时候就会出现 关闭文件后 依然存在 为什么啊 因为该文件存在 无法重新设计表的结构!
      

  4.   

    SQL语句 读出来的只有一条记录!!!
    不需要while do
      

  5.   

    1 如何确保datareader读出数据?关键代码都贴出来了
    如 applelppa(人生若只如初见) 所说可以实现
    while的作用是判断是否有数据取出,是否读到最后一条记录2 该文件我发现 用aspx文件 有时候就会出现 关闭文件后 依然存在 为什么啊 因为该文件存在 无法重新设计表的结构!
    这个LOG文件,一定要程序正常结束,也就是调用myConnection.Close()这个文件才消失,如果手工消失很简单,就是连续调用myConnection.Open()和myConnection.Close(),或用微软的ACCESS打开再关闭,就没有了。
      

  6.   

    加上while (dr.Read ())
    {
       con.Text=dr["con"].ToString();}
    dr.close();
    可以正确读出来
    而不用while do 还是老毛病 这如何解释啊?
      

  7.   

    指定一下 OleDbCommand MyComm 的 OleDbCommandType 试一试
      

  8.   

    不是加不加WHILE的问题,是你没有执行读(dr.Read ())的操作,
      

  9.   

    ExecuteReader返回的是一个DataReader对象,DataReader对象里怎么能读数据行呢?为了取得DataReader里的数据行,必须用Read方法取得数据行。这就出错的症结所在。
      

  10.   

    你不用WHILE,直接在付值前写上DR.READ()
    用WHILE是一个习惯,好比如IF语句只有一行,大家也都加上{},结构清晰,而且程序不容易出一些小毛病。
      

  11.   

    chjiamin(家) 一句话 点到要害了!!
    给分!
      

  12.   

    ldb 文件应该是ACESS文件的日志文件吧。记录你所作的操作记录,以备灾难恢复所用。