前面注意加上OpenConnection();
你的Excel文件是不是还打开着哦`````

解决方案 »

  1.   

    OpenConnection(); 
        写在哪呢!  我前面是打开的。
      

  2.   

    首先  你确认 OleDbConnection   conn   =   DB.Getconn(); 实例化后是否有 conn.open()在看看你执行时SQL语句所操作的表 是不是 在本机的access打开了,本机打开的表会以独占的方式打开,程序里无法操作本机打开的表,吧表关了。数据库打开的话不影响操作。
      

  3.   

    什么事务处理
    在哪里加上conn.open();
      

  4.   

    http://blog.cfan.com.cn/html/49/302849-318415.html
    去看看吧
      

  5.   

    我猜想你总是共用 DB.Getconn() 返回的静态 Connection 对象???public class DB
    {public static OleDbConnection Getconn()
    {
    return new OleDbConnection(<<connectionstring>>);
    }}  public static  void execnonsql(string sql)
        {
                OleDbConnection conn = DB.Getconn();
            try
            {            
                OleDbCommand com = new OleDbCommand(sql, conn);
                conn.Open();
                com.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);///  当字段很大的时候这行出错! 如果少量数据并没有出错!
            }
            finally
            {
                if(conn != null) {conn.Close() }
                //closeConnection();
            }    }