这种情况一般都用事物,不对excel做操作,出错了只对数据库进行回滚代码我不会VB的,搜下吧,很多例子

解决方案 »

  1.   

     Sql2 = "UPDATE [Sheet1$] SET rec='0'" 
    Sql2 = "UPDATE [Sheet1$] SET rec='1'" 
    ------------------------------
    這兩條SQL語句都是一次性更新整個sheet1$,你要加上where來匹配你真正要更新的記錄
      

  2.   

     Sql2 = "UPDATE [Sheet1$] SET rec='0'"  
    Sql2 = "UPDATE [Sheet1$] SET rec='1'"  
    ------------------------------ 
    這兩條SQL語句都是一次性更新整個sheet1$,你要加上where來匹配你真正要更新的記錄
    ==============================================================================
    我加了where也是效果一样,有没有其他的办法能够防止重复插入呢?
      

  3.   

    SqlStr = "insert into aging([rec],[aging_date],[aging_sapno]...." 
    -----------------------------
    這條語句是插入一條記錄還是多條?
      

  4.   

    SqlStr = "insert into aging([rec],[aging_date],[aging_sapno]...."  
    ----------------------------- 
    這條語句是插入一條記錄還是多條?
    =========================================================================
     SqlStr = "insert into aging([rec],[aging_date],[aging_sapno]) values('" & fixsql(myReader.GetValue(0)) & "','" & fixsql(myReader.GetValue(1)) & "','" & fixsql(myReader.GetValue(2))& "')"我有一个Do While myReader.Read() 在上面,应该是插入一条咯。
      

  5.   

    那就看不出問題來了,最好逐行調試,然後看下數據庫和Excel中是否正常,確定出錯的原因。
      

  6.   

    Sql2 = "UPDATE [Sheet1$] SET rec='0'"  
    Sql2 = "UPDATE [Sheet1$] SET rec='1'"  
    ========================================
    都没写过滤条件,难怪会成为你说的那样
      

  7.   

    用事务来做,try中插入,cacth中异常就rollback
      

  8.   

    c# 的例子,希望有所帮助
    private static void ExecuteSqlTransaction(string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            SqlCommand command = connection.CreateCommand();
            SqlTransaction transaction;        transaction = connection.BeginTransaction("SampleTransaction");
            command.Connection = connection;
            command.Transaction = transaction;        try
            {
                command.CommandText =
                    "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
                command.ExecuteNonQuery();
                command.CommandText =
                    "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
                command.ExecuteNonQuery();            transaction.Commit();
                Console.WriteLine("Both records are written to database.");
            }
            catch (Exception ex)
            {           
                transaction.Rollback();         
            }
        }
    }
      

  9.   

    UPDATE [Sheet1$] SET rec='0'
    这样的话最后一次是成功的就会使所有的变成0
    如果是失败,就会使所有的变为1,
    要加个限制条件,
    根据你插入的记录的主键
      

  10.   

    你的excel要有一个类似主键的作为唯一标识的字段
    你在导数据的时候可以直接看你的数据库里有没存在这条数据,若存在就不用insert了