代码是
  using (SqlConnection cnn = new SqlConnection(DbConnectionString))
                        {
                                try
                                {
                                        qty = Convert.ToInt32(dtcode.Compute("count(Quantity)", "Quantity=1"));                                        using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                                        {                                                if (cnn.State != ConnectionState.Open)
                                                        cnn.Open();                                                SqlCommand cmd = new SqlCommand();
                                                cmd.Connection = cnn;
                                                cmd.CommandType = CommandType.StoredProcedure;
                                                cmd.CommandText = "usp_AddNewDuo";
                                                cmd.Parameters.Add("@duocode", SqlDbType.BigInt).Value = duocode;
                                                cmd.Parameters.Add("@Aufnr", SqlDbType.VarChar).Value = ordno;
                                                cmd.Parameters.Add("@Quantity", SqlDbType.Int).Value = qty;
                                                cmd.ExecuteNonQuery();                                                using (SqlBulkCopy bc = new SqlBulkCopy(cnn))
                                                {
                                                        bc.DestinationTableName = dtcode.TableName;
                                                        bc.BatchSize = dtcode.Rows.Count;
                                                        foreach (DataColumn dc in dtcode.Columns)
                                                        {
                                                                SqlBulkCopyColumnMapping col = new SqlBulkCopyColumnMapping(dc.ColumnName, dc.ColumnName);
                                                                bc.ColumnMappings.Add(col);
                                                        }
                                                        bc.WriteToServer(dtcode);
                                                }
                                                ts.Complete();
                                        }
                                        return true;
                                }
                                catch (Exception ex)
                                {
                                        throw new Exception(ex.Message);
                                }
一个礼拜出现一次错误,错误日志是:事务不确定性,英文是The transaction is in doubt