看看mdb文件是不是已经被你打开了?

解决方案 »

  1.   

    是不是已经在使用了或者看看NTFS下操作权限
      

  2.   

    this.oleDbConnection1.Open();
    打开以后 是否 关闭了连接
    this.oleDbConnection1.Close();
      

  3.   

    一般情况下可能是楼主的数据层代码的问题,打开没有关闭,
    你可以重新启动系统看看,是否第一次访问会正常,多访问几次又出问题,
    使用try catch finally
    public class AccessDbHelper
    {
    private static string strConn =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=h2004.mdb;Persist Security Info=False;";

    /// <summary>
    /// 获取单个值
    /// </summary>
    /// <param name="strSql"></param>
    /// <returns></returns>
    public static object ExecuteScalar(string strSql)
    {
    object o = null;
    OleDbConnection myConn = new OleDbConnection(strConn);
    OleDbCommand myComm = new OleDbCommand(strSql,myConn);
    try
    {
    myConn.Open();
    o = myComm.ExecuteScalar();
    }
    catch(Exception e)
    {

    }
    finally
    {
    myConn.Close();
    }
    return o;
    }
    /// <summary>
    /// 更新数据
    /// </summary>
    /// <param name="strSql"></param>
    public static int ExecuteNonQuery(string strSql)
    {
    int count = -1;
    OleDbConnection myConn = new OleDbConnection(strConn);
    OleDbCommand myComm = new OleDbCommand(strSql,myConn);
    try
    {
    myConn.Open();
    count = myComm.ExecuteNonQuery();
    }
    catch(Exception e)
    {

    }
    finally
    {
    if(myConn.State != ConnectionState.Closed)
    myConn.Close();
    myConn.Dispose();
                                myComm.Dispose();
    }
    return count;
    }
    /// <summary>
    /// 获取数据读取器
    /// </summary>
    /// <param name="strSql"></param>
    public static OleDbDataReader ExecuteReader(string strSql)
    {
    OleDbConnection myConn = new OleDbConnection(strConn);
    OleDbCommand myComm = new OleDbCommand(strSql,myConn);
    myConn.Open();
    return myComm.ExecuteReader(CommandBehavior.CloseConnection);
    }
    /// <summary>
    /// 获取数据集
    /// </summary>
    /// <param name="strSql"></param>
    /// <returns></returns>
    public static DataSet ExecuteDataSet(string strSql)
    {
    DataSet ds = new DataSet();
    OleDbConnection myConn = new OleDbConnection(strConn);
    try
    {
    OleDbCommand myComm = new OleDbCommand(strSql,myConn);
    OleDbDataAdapter myAda = new OleDbDataAdapter(myComm);
    myAda.Fill(ds,"TableName");
    }
    catch(Exception e)
    {
    ds = null;
    }
    finally
    {
    myConn.Close();
    }
    return ds;
    }
    }
      

  4.   

    应该不是代码的原因,因为在WINXP系统下运行正常。