protected override void BeforeEachExample()
 {
     base.BeforeEachExample();
     dbConnection = new SqlCeConnection(DatabaseIntegrationSetup.TestDBConnectionString);
     dbConnection.Open();
     transaction = dbConnection.BeginTransaction();
 }
示例#2
0
 public static void DeleteAllFileNames(SqlCeTransaction transaction, SqlCeConnection conn)
 {
     SqlCeCommand command = new SqlCeCommand(Folder_Names_SQL.commandDeleteAllFolderNames, conn);
     command.Transaction = transaction;
     command.Connection = conn;
     command.ExecuteNonQuery();
 }
        public SqlCeCommand CreateAddProductCommand(SqlCeConnection conn, SqlCeTransaction transaction)
        {
            var cmd = new SqlCeCommand(_sql, conn, transaction);
            CreateParameters(cmd);

            return cmd;
        }
示例#4
0
 public void commitTransaction()
 {
     if ((con != null) && (trans != null) && (con.State == System.Data.ConnectionState.Open))
     {
         trans.Commit();
         trans = null;
     }
 }
 /// <summary>
 /// Starts a Transaction session on the current connection.
 /// </summary>
 public void BeginTran()
 {
     if (oConn.State == ConnectionState.Open)
     {
         oTran = oConn.BeginTransaction();
         blnTranActive = true;
     }
 }
示例#6
0
        public bool deleteDocCheckProduct(string _DCode)
        {
            bool result = false;
            try
            {

                Conn = OpenConn();

                sb = new StringBuilder();
                sb.Append(" delete from DocCheckProducts  where DCode ='"+_DCode+"'");

                string sqlAdd;
                sqlAdd = sb.ToString();

                tr = Conn.BeginTransaction();
                com = new SqlCeCommand();
                com.CommandText = sqlAdd;
                com.CommandType = CommandType.Text;
                com.Connection = Conn;
                com.Transaction = tr;
                com.ExecuteNonQuery();

                tr.Commit();

                sb = new StringBuilder();
                sb.Append(" delete from DocCheckProductDetails where DCode ='" + _DCode + "'");

                string sqldelete;
                sqldelete = sb.ToString();

                tr = Conn.BeginTransaction();
                com = new SqlCeCommand();
                com.CommandText = sqldelete;
                com.CommandType = CommandType.Text;
                com.Connection = Conn;
                com.Transaction = tr;
                com.ExecuteNonQuery();

                tr.Commit();

                result = true;

            }
            catch (Exception ex)
            {

                tr.Rollback();
                Conn.Close();
                result = false;
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Conn.Close();
            }

            return result;
        }
 public static void DeletAllRespectiveCapturePointsForTextConversion(int captureEventId, SqlCeConnection conn, SqlCeTransaction transaction)
 {
     //pointRecId
     int value = 0;
     SqlCeCommand command = new SqlCeCommand(Rec_CapturePoints_TextConv_SQL.commandRemoveAllCapturePointsByRecIdTextConv, conn);
     command.Transaction = transaction;
     command.Parameters.Add("@pointRecId", captureEventId);
     value = Convert.ToInt32(command.ExecuteNonQuery());
 }
示例#8
0
        protected DataBaseCompactConnection()
        {
            connectionConfig = new Encrypter().DecryptText(
                               ConfigurationManager.ConnectionStrings["RopSqlConnStr"].ConnectionString);

            cultureAcronym = ConfigurationManager.AppSettings["RopSqlCulture"];

            connection = new SqlCeConnection(connectionConfig);

            transactionControl = null;
        }
        /// <summary>
        ///     Starts a Transaction using the Connection instance
        /// </summary>
        /// <returns>
        ///     The <see cref="SqlCeTransaction" />.
        /// </returns>
        public SqlCeTransaction BeginTransaction()
        {
            if (this.transaction != null)
            {
                throw new InvalidOperationException(
                    "A transaction has already been started. Only one transaction is allowed");
            }

            this.transaction = EntityBase.Connection.BeginTransaction();
            this.UsersDB.Transaction = this.transaction;
            return this.transaction;
        }
 public static void SaveReplacementEventForTextConversion(ReplacementEvent replacementEvent, SqlCeConnection conn, SqlCeTransaction transaction)
 {
     SqlCeCommand command = new SqlCeCommand(Advanced_Replacements_TextConv_SQL.commandUpdateReplacementByIdTextConv, conn);
     command.Transaction = transaction;
     command.Parameters.Add("@name", replacementEvent.name);
     command.Parameters.Add("@description", replacementEvent.description);
     command.Parameters.Add("@value", replacementEvent.Value);
     command.Parameters.Add("@typeId", replacementEvent.typeId);
     command.Parameters.Add("@capturePointId", replacementEvent.capturePointId);
     command.Parameters.Add("@userId", replacementEvent.userId);
     command.Parameters.Add("@usageCount", replacementEvent.usageCount);
     command.Parameters.Add("@id", replacementEvent.id);
     command.ExecuteNonQuery();
 }
示例#11
0
 public static void beginTransactionCe()
 {
     try
     {
         if ((sqlCeConn.State == ConnectionState.Open))
         {
             transacaoCe = sqlCeConn.BeginTransaction(IsolationLevel.ReadCommitted);
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Ocorre um problema na conexão com a base de dados." + Constants.vbCrLf + "Erro : " + ex.Message);
     }
 }
示例#12
0
 public static void InsertFolderName(int index, string folderName, object parentId, string generatedID, SqlCeTransaction transaction, SqlCeConnection conn)
 {
     try {
         SqlCeCommand command = new SqlCeCommand(Folder_Names_SQL.commandInsertFolderName, conn);
         command.Parameters.Add("@id", index);
         command.Parameters.Add("@folderName", folderName);
         command.Parameters.Add("@parentId", parentId);
         command.Parameters.Add("@generatedID", generatedID);
         command.Transaction = transaction;
         command.Connection = conn;
         command.ExecuteNonQuery();
     } catch (Exception ex) {
         CommonUtils.LogError(ex.Message, ex);
     }
 }
示例#13
0
 public static void InsertUpdatedFileNames(List<TreeNode> treeNodes, SqlCeTransaction transaction, SqlCeConnection conn)
 {
     try {
         for (int i = 0; i < treeNodes.Count; i++) {
             int parentId = treeNodes[i].Parent == null ? -1 : treeNodes.IndexOf(treeNodes[i].Parent);
             if (parentId != -1) {
                 InsertFolderName(i, treeNodes[i].Text, parentId, treeNodes[i].Tag.ToString(), transaction, conn);
             } else {
                 InsertFolderName(i, treeNodes[i].Text, DBNull.Value, treeNodes[i].Tag.ToString(), transaction, conn);
             }
         }
     } catch (Exception ex) {
         CommonUtils.LogError(ex.Message,ex);
     }
 }
示例#14
0
 public static void commit()
 {
     try
     {
         if (tx != null)
         {
             tx.Commit();
             tx = conexao.BeginTransaction();
         }
     }
     catch (Exception err)
     {
         throw err;
     }
 }
示例#15
0
 public static void rollback()
 {
     try
     {
         if (tx != null)
         {
             tx.Rollback();
             tx = conexao.BeginTransaction();
         }
     }
     catch (Exception err)
     {
         throw err;
     }
 }
示例#16
0
 private void OpenConnection(SqlCeConnection aSqlCeConnection, SqlCeTransaction aSqlCeTransaction)
 {
     using (SqlCeCommand sqlCommand = new SqlCeCommand("SELECT s.Id_Session, s.Session, s.[DateTime] FROM Session AS s", aSqlCeConnection, aSqlCeTransaction))
     {
         sqlCommand.CommandType = CommandType.Text;
         using (SqlCeDataReader rdr = sqlCommand.ExecuteReader())
         {
             if (rdr.Read())
             {
                 FId_Session = (Int32)rdr["Id_Session"];
                 FSession = (Guid)rdr["Session"];
                 FDateTime = (DateTime)rdr["DateTime"];
             }
         }
     }
 }
    /// <summary>
    ///     A SqlCeConnection extension method that executes the reader operation.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    /// <returns>A SqlCeDataReader.</returns>
    public static SqlCeDataReader SqlCeExecuteReader(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            return command.ExecuteReader();
        }
    }
    /// <summary>
    ///     A SqlCeConnection extension method that executes the non query operation.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    public static void ExecuteNonQuery(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            command.ExecuteNonQuery();
        }
    }
 public static int InserNewCategory(ComparisonCategory comparisonCategory, SqlCeTransaction transaction, SqlCeConnection conn)
 {
     SqlCeCommand command = new SqlCeCommand(Env_Comparison_Categories_SQL.commandInsertNewEnvComparisonCategory, conn);
        command.Transaction = transaction;
        command.Parameters.Add("@id", comparisonCategory.categoryId);
        command.Parameters.Add("@name", comparisonCategory.categoryName);
        command.Parameters.Add("@description", comparisonCategory.categoryDescription);
        command.Parameters.Add("@path", comparisonCategory.categoryPath);
        if (comparisonCategory.categoryParentId == -1) {
        //DBNull.Value
        command.Parameters.Add("@parentId", DBNull.Value);
        } else {
        command.Parameters.Add("@parentId", comparisonCategory.categoryParentId);
        }
        int numberAffectedRows = Convert.ToInt32(command.ExecuteNonQuery());
        return numberAffectedRows;
 }
示例#20
0
        public int Excluir(SqlCeTransaction bdTrans)
        {
            //string sqlUpdateEstoque = "";
            //Código temporariamente comentado por estar com erro 19/03/2009

            //            foreach (GradeItem gi in LstGradeItem)
            //            {
            //                //Recupera a quantidade do estoque
            //                string sqlPedidoOriginalQuantidade = @"
            //                select
            //                     quantidade
            //                from
            //                     item_pedido_grade
            //                where
            //                     id_pedido=" + Globals.Pedido.Id + " and id_produto=" + Produto.Id +
            //                         @" and id_grade = " + Produto.IdGrade.V +
            //                         @" and id_item_grade = " + gi.IdItemGrade +
            //                         @" and id_atributo = " + gi.IdAtributo +
            //                         @" and id_item_atributo = " + gi.IdItemAtributo;

            //                IntN quantidadeOriginal = Globals.Bd.IntN(sqlPedidoOriginalQuantidade, bdTrans);
            //                if (quantidadeOriginal.Iniciada)
            //                {
            //                    sqlUpdateEstoque = @"
            //                    update
            //                        saldo_grade
            //                    set
            //                        estoque=estoque + " + quantidadeOriginal.V + @"
            //                    where
            //                        id_produto=" + Produto.Id +
            //                                @" and id_grade = " + Produto.IdGrade.V +
            //                                @" and id_item_grade = " + gi.IdItemGrade +
            //                                @" and id_atributo = " + gi.IdAtributo +
            //                                @" and id_item_atributo = " + gi.IdItemAtributo;
            //                    Globals.Bd.ExecuteNonQuery(sqlUpdateEstoque, bdTrans);
            //                }
            //            }

            int rf;
            string sqlDeleteItemGrade = @"
            delete from
                item_pedido_grade
            where id_produto=" + Produto.Id + " and id_pedido='" + Produto.Pedido.Id + "'";
            rf = D.Bd.ExecuteNonQuery(sqlDeleteItemGrade, bdTrans);
            return rf;
        }
示例#21
0
        public static void SetPrimaryKey(SqlCeTransaction trans, SqlCeRowUpdatedEventArgs e)
        {
            // If this is an INSERT operation...
            if (e.Status == UpdateStatus.Continue && e.StatementType == StatementType.Insert)
            {
                System.Data.DataColumn[] pk = e.Row.Table.PrimaryKey;
                // and a primary key PK column exists...
                if (pk != null && pk.Length == 1)
                {
                    //Set up the post-update query to fetch new @@Identity
                    SqlCeCommand cmdGetIdentity = new SqlCeCommand("SELECT @@IDENTITY", (SqlCeConnection)trans.Connection, trans);

                    //Execute the command and set the result identity value to the PK
                    e.Row[pk[0]] = Convert.ToInt32(cmdGetIdentity.ExecuteScalar());
                    e.Row.AcceptChanges();
                }
            }
        }
示例#22
0
 public Command(string queryString)
 {
     this._connection = new SqlCeConnection(_connectionString);
     this.SqlCommand = new SqlCeCommand(queryString, this._connection);
     this.SqlCommand.Transaction = this._transaction;
     try
     {
         this._connection.Open();
         this._transaction = this._connection.BeginTransaction(IsolationLevel.ReadCommitted);
     }
     catch (Exception ex)
     {
         if (this._transaction != null)
         {
             this._transaction.Rollback();
         }
         Console.WriteLine(ex.Message);
     }
 }
    /// <summary>
    ///     Enumerates execute expando objects in this collection.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    /// <returns>
    ///     An enumerator that allows foreach to be used to process execute expando objects in this collection.
    /// </returns>
    public static IEnumerable<dynamic> ExecuteExpandoObjects(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            using (IDataReader reader = command.ExecuteReader())
            {
                return reader.ToExpandoObjects();
            }
        }
    }
示例#24
0
		public override bool Save(SqlCeTransaction tr)
		{
			bool res = true;

			try
			{
				//save this
				switch (Status)
				{
					case Status.Added:
						if (string.IsNullOrWhiteSpace(Id))
							this.Id = Generator.GenerateID(CConstants.COLL);
						res = AddValue(this, tr);
						Status = Common.Interfaces.Status.Normal;
						break;
					case Status.Normal:
						break;
					case Status.Updated:
						res = UpdateValue(this);
						Status = Common.Interfaces.Status.Normal;
						break;
					case Status.Deleted:
						res = DeleteValue(this.Id);
						break;
					default:
						Status = Common.Interfaces.Status.Normal;
						break;
				}
			}
			catch (Exception ex)
			{
				res = false;
			}

			if (res)
			{
				Status = Common.Interfaces.Status.Normal;
			}

			return res;
		}
    /// <summary>
    ///     A SqlCeConnection extension method that executes the data set operation.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    /// <returns>A DataSet.</returns>
    public static DataSet ExecuteDataSet(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            var ds = new DataSet();
            using (var dataAdapter = new SqlCeDataAdapter(command))
            {
                dataAdapter.Fill(ds);
            }

            return ds;
        }
    }
        public static int InsertCapturePointsAsTransactionForTextConversion(int RecommendationId, List<CustomTreeNode> customNodesList, SqlCeConnection conn, SqlCeTransaction transaction)
        {
            int returnCode = -1;
            List<int> capturePointsIds = new List<int>();
            for (int i = 0; i < customNodesList.Count; i++) {
                SqlCeCommand command = new SqlCeCommand(Rec_CapturePoints_TextConv_SQL.commandInsertCapturePointTextConv, conn);
                command.Transaction = transaction;
                //@pointText, @pointUsedAttributes, @pointParentNode, @pointUsedAttribValues, @pointRecId
                command.Parameters.Add("@pointText", customNodesList[i].Text);
                command.Parameters.Add("@pointUsedAttributes", BackEndUtils.GetUsedAttributes(customNodesList[i].customizedAttributeCollection));
                command.Parameters.Add("@pointParentNode", (customNodesList[i].Parent == null ? "" : customNodesList[i].Parent.Text));
                command.Parameters.Add("@pointUsedAttribValues", BackEndUtils.GetUsedAttributesValues(customNodesList[i].customizedAttributeCollection));
                command.Parameters.Add("@pointRecId", RecommendationId);
                command.Parameters.Add("@Level", customNodesList[i].Level);
                command.Parameters.Add("@ItemIndex", customNodesList[i].Index);
                command.Parameters.Add("@parentLevel", customNodesList[i].Parent == null ? -1 : customNodesList[i].Parent.Level);
                command.Parameters.Add("@parentIndex", customNodesList[i].Parent == null ? -1 : customNodesList[i].Parent.Index);

                returnCode = Convert.ToInt32(command.ExecuteNonQuery());
                SqlCeCommand commandMaxId = new SqlCeCommand(Rec_CapturePoints_TextConv_SQL.commandMaxCapturePointIdTextConv, conn);
                capturePointsIds.Add(Convert.ToInt32(commandMaxId.ExecuteScalar()));
            }
            return returnCode;
        }
 /// <summary>
 ///     A SqlCeConnection extension method that executes the scalar operation.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="parameters">Options for controlling the operation.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>An object.</returns>
 public static T ExecuteScalarAs <T>(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, SqlCeTransaction transaction)
 {
     return(@this.ExecuteScalarAs <T>(cmdText, parameters, CommandType.Text, transaction));
 }
    /// <summary>
    ///     A SqlCeConnection extension method that executes the scalar operation.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    /// <returns>An object.</returns>
    public static T ExecuteScalarAs <T>(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            return((T)command.ExecuteScalar());
        }
    }
 /// <summary>
 ///     A SqlCeConnection extension method that executes the scalar operation.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="commandType">Type of the command.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>An object.</returns>
 public static T ExecuteScalarAs <T>(this SqlCeConnection @this, string cmdText, CommandType commandType, SqlCeTransaction transaction)
 {
     return(@this.ExecuteScalarAs <T>(cmdText, null, commandType, transaction));
 }
示例#30
0
    /// <summary>
    ///     A SqlCeConnection extension method that executes the expando object operation.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="cmdText">The command text.</param>
    /// <param name="parameters">Options for controlling the operation.</param>
    /// <param name="commandType">Type of the command.</param>
    /// <param name="transaction">The transaction.</param>
    /// <returns>A dynamic.</returns>
    public static dynamic ExecuteExpandoObject(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, CommandType commandType, SqlCeTransaction transaction)
    {
        using (SqlCeCommand command = @this.CreateCommand())
        {
            command.CommandText = cmdText;
            command.CommandType = commandType;
            command.Transaction = transaction;

            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }

            using (IDataReader reader = command.ExecuteReader())
            {
                reader.Read();
                return(reader.ToExpandoObject());
            }
        }
    }
 private void DisposeTransaction()
 {
     m_Transaction.Dispose();
     m_Transaction = null;
 }
 /// <summary>
 ///     Enumerates execute expando objects in this collection.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="parameters">Options for controlling the operation.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>
 ///     An enumerator that allows foreach to be used to process execute expando objects in this collection.
 /// </returns>
 public static IEnumerable <dynamic> ExecuteExpandoObjects(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, SqlCeTransaction transaction)
 {
     return(@this.ExecuteExpandoObjects(cmdText, parameters, CommandType.Text, transaction));
 }
示例#33
0
 public SQLCETransaction(ISQLDatabase database, IDbConnection connection, SqlCeTransaction transaction)
 {
     _database    = database;
     _connection  = connection;
     _transaction = transaction;
 }
 /// <summary>
 ///     A SqlCeConnection extension method that executes the data set operation.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>A DataSet.</returns>
 public static DataSet ExecuteDataSet(this SqlCeConnection @this, string cmdText, SqlCeTransaction transaction)
 {
     return @this.ExecuteDataSet(cmdText, null, CommandType.Text, transaction);
 }
        /// <summary>
        /// UpdateCustomer
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static bool UpdateCustomer(Customer item)
        {
            var sql = @"UPDATE Customer
                       SET Name = @Name
                          ,Id = @Id
                          ,Phone = @Phone
                          ,IM = @IM
                          ,Remark = @Remark
                          ,Discount = @Discount
                          ,UpdateTime = @UpdateTime
                     WHERE Id = @Id";
            var ret = false;

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                SqlCeTransaction tx = null;
                try
                {
                    conn.Open();
                    tx = conn.BeginTransaction();
                    SqlCeCommand command    = conn.CreateCommand();
                    var          parameters = new[]
                    {
                        new SqlCeParameter("Name", SqlDbType.NVarChar, 100)
                        {
                            Value = item.Name
                        },
                        new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                        {
                            Value = item.Id
                        },
                        new SqlCeParameter("Phone", SqlDbType.NVarChar, 100)
                        {
                            Value = item.Phone
                        },
                        new SqlCeParameter("IM", SqlDbType.NVarChar, 150)
                        {
                            Value = item.IM
                        },
                        //new SqlCeParameter("Deposit", SqlDbType.Decimal) { Value = item.Deposit }, 注意去掉了 sql 的 Deposit
                        new SqlCeParameter("Remark", SqlDbType.NVarChar, 300)
                        {
                            Value = item.Remark
                        },
                        new SqlCeParameter("Discount", SqlDbType.Int)
                        {
                            Value = item.Discount
                        },
                        new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                        {
                            Value = item.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
                        }
                    };
                    command.Parameters.AddRange(parameters);
                    command.CommandText = sql;
                    ret = command.ExecuteNonQuery() > 0;
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
            return(ret);
        }
        /// <summary>
        /// TopUpCustomerDeposit
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="Deposit"></param>
        /// <returns></returns>
        public static bool TopUpCustomerDeposit(string Id, decimal Deposit)
        {
            var sql = @"UPDATE Customer SET Deposit = (Deposit + @Deposit) WHERE Id = @Id";
            var ret = false;

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                SqlCeTransaction tx = null;
                try
                {
                    conn.Open();
                    tx = conn.BeginTransaction();
                    SqlCeCommand command    = conn.CreateCommand();
                    var          parameters = new[]
                    {
                        new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                        {
                            Value = Id
                        },
                        new SqlCeParameter("Deposit", SqlDbType.Decimal)
                        {
                            Value = Deposit
                        },
                        new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                        {
                            Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        }
                    };
                    command.Parameters.AddRange(parameters);
                    command.CommandText = sql;
                    ret = command.ExecuteNonQuery() > 0;

                    sql        = @"INSERT INTO DepositDetail (CustomerId,Detail,ItemSalesId,UpdateTime)
                                VALUES (@CustomerId,@Detail,@ItemSalesId,@UpdateTime)";
                    command    = conn.CreateCommand();
                    parameters = new[]
                    {
                        new SqlCeParameter("CustomerId", SqlDbType.NVarChar, 50)
                        {
                            Value = Id
                        },
                        new SqlCeParameter("Detail", SqlDbType.NVarChar, 200)
                        {
                            Value = "增值---" + Deposit + " 元"
                        },
                        new SqlCeParameter("ItemSalesId", SqlDbType.NVarChar, 50)
                        {
                            Value = ""
                        },
                        new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                        {
                            Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        }
                    };
                    command.Parameters.AddRange(parameters);
                    command.CommandText = sql;
                    command.ExecuteNonQuery();

                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
            return(ret);
        }
 /// <summary>
 ///     A SqlCeConnection extension method that executes the non query operation.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="parameters">Options for controlling the operation.</param>
 /// <param name="transaction">The transaction.</param>
 public static void ExecuteNonQuery(this SqlCeConnection @this, string cmdText, SqlCeParameter[] parameters, SqlCeTransaction transaction)
 {
     @this.ExecuteNonQuery(cmdText, parameters, CommandType.Text, transaction);
 }
        /// <summary>
        /// InsertItemSales
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static bool InsertItemSales(List <ItemSales> list)
        {
            var sql = @"INSERT INTO ItemSales(ItemSalesId,ItemMasterId,ItemName,CustomerId,SalesType,SalesCount,SoldPirce,UpdateTime)
                        VALUES (@ItemSalesId,@ItemMasterId,@ItemName,@CustomerId,@SalesType,@SalesCount,@SoldPirce,@UpdateTime)";

            var ret = false;

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                SqlCeTransaction tx = null;
                try
                {
                    conn.Open();
                    tx = conn.BeginTransaction();

                    //var ItemSalesId = Guid.NewGuid().ToString();
                    var ItemSalesId = DateTime.Now.ToString("yyyyMMddHHmmssfff");

                    list.ForEach(s =>
                    {
                        SqlCeCommand command = conn.CreateCommand();
                        var parameters       = new[]
                        {
                            new SqlCeParameter("ItemSalesId", SqlDbType.NVarChar, 50)
                            {
                                Value = ItemSalesId
                            },
                            new SqlCeParameter("ItemMasterId", SqlDbType.NVarChar, 50)
                            {
                                Value = s.Id
                            },
                            new SqlCeParameter("ItemName", SqlDbType.NVarChar, 250)
                            {
                                Value = s.ItemName
                            },
                            new SqlCeParameter("CustomerId", SqlDbType.NVarChar, 50)
                            {
                                Value = s.CustomerId ?? ""
                            },
                            new SqlCeParameter("SalesType", SqlDbType.Int)
                            {
                                Value = s.SalesType
                            },
                            new SqlCeParameter("SalesCount", SqlDbType.Int)
                            {
                                Value = s.SalesCount
                            },
                            new SqlCeParameter("SoldPirce", SqlDbType.Decimal)
                            {
                                Value = s.SoldPirce
                            },
                            new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                            {
                                Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            },
                        };
                        command.Parameters.AddRange(parameters);
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                    });

                    var cusid = list.FirstOrDefault().CustomerId;
                    if (!string.IsNullOrEmpty(cusid))
                    {
                        sql = "UPDATE Customer SET Deposit = @Deposit, UpdateTime = @UpdateTime WHERE Id = @Id";
                        var deposit = list.FirstOrDefault().DepositForUpdate - list.Sum(s => s.SoldPirce);
                        if (deposit < 0)
                        {
                            deposit = 0;
                        }
                        ;
                        SqlCeCommand command    = conn.CreateCommand();
                        var          parameters = new[]
                        {
                            new SqlCeParameter("Deposit", SqlDbType.Decimal)
                            {
                                Value = deposit
                            },
                            new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                            {
                                Value = cusid
                            },
                            new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                            {
                                Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            },
                        };
                        command.Parameters.AddRange(parameters);
                        command.CommandText = sql;
                        command.ExecuteNonQuery();

                        sql        = @"INSERT INTO DepositDetail (CustomerId,Detail,ItemSalesId,UpdateTime)
                                VALUES (@CustomerId,@Detail,@ItemSalesId,@UpdateTime)";
                        command    = conn.CreateCommand();
                        parameters = new[]
                        {
                            new SqlCeParameter("CustomerId", SqlDbType.NVarChar, 50)
                            {
                                Value = cusid
                            },
                            new SqlCeParameter("Detail", SqlDbType.NVarChar, 200)
                            {
                                Value = "消费---消费前还有 " + list.FirstOrDefault().DepositForUpdate + " 元,消费了 " + list.Sum(s => s.SoldPirce) + " 元,还剩 " + deposit + " 元"
                            },
                            new SqlCeParameter("ItemSalesId", SqlDbType.NVarChar, 50)
                            {
                                Value = ItemSalesId
                            },
                            new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                            {
                                Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            }
                        };
                        command.Parameters.AddRange(parameters);
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                    }

                    sql = @"UPDATE ItemMaster SET StockCount = (StockCount - @SalesCount), UpdateTime = @UpdateTime WHERE Id = @Id";
                    list.ForEach(s =>
                    {
                        SqlCeCommand command = conn.CreateCommand();
                        var parameters       = new[]
                        {
                            new SqlCeParameter("SalesCount", SqlDbType.Int)
                            {
                                Value = s.SalesCount
                            },
                            new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                            {
                                Value = s.Id
                            },
                            new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                            {
                                Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            },
                        };
                        command.Parameters.AddRange(parameters);
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                    });

                    tx.Commit();
                    ret = true;
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
            return(ret);
        }
        //public static bool Insert(string sql)
        //{
        //    var ret = false;
        //    using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
        //    {
        //        conn.Open();
        //        SqlCeCommand command = new SqlCeCommand(sql, conn);
        //        ret = command.ExecuteNonQuery() > 0;
        //        conn.Close();
        //    }
        //    return ret;
        //}


        /// <summary>
        /// InsertItemMaster
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static bool InsertItemMaster(ItemMaster item)
        {
            var sql = @"INSERT INTO ItemMaster(ItemId,ItemName,ItemSize,ItemType,StockCount,StockPrice,Price,Id,UpdateTime,Color)
                        VALUES (@ItemId,@ItemName,@ItemSize,@ItemType,@StockCount,@StockPrice,@Price,@Id,@UpdateTime,@Color)";
            var ret = false;

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                SqlCeTransaction tx = null;
                try
                {
                    conn.Open();
                    tx = conn.BeginTransaction();
                    SqlCeCommand command    = conn.CreateCommand();
                    var          parameters = new[]
                    {
                        new SqlCeParameter("ItemId", SqlDbType.NVarChar, 100)
                        {
                            Value = item.ItemId
                        },
                        new SqlCeParameter("ItemName", SqlDbType.NVarChar, 250)
                        {
                            Value = item.ItemName
                        },
                        new SqlCeParameter("ItemSize", SqlDbType.Int)
                        {
                            Value = item.ItemSize
                        },
                        new SqlCeParameter("ItemType", SqlDbType.Int)
                        {
                            Value = item.ItemType
                        },
                        new SqlCeParameter("StockCount", SqlDbType.Int)
                        {
                            Value = item.StockCount
                        },
                        new SqlCeParameter("StockPrice", SqlDbType.Decimal)
                        {
                            Value = item.StockPrice
                        },
                        new SqlCeParameter("Price", SqlDbType.Decimal)
                        {
                            Value = item.Price
                        },
                        new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                        {
                            Value = item.Id
                        },
                        new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                        {
                            Value = item.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
                        },
                        new SqlCeParameter("Color", SqlDbType.NVarChar, 50)
                        {
                            Value = item.Color ?? ""
                        }
                    };
                    command.Parameters.AddRange(parameters);
                    command.CommandText = sql;
                    ret = command.ExecuteNonQuery() > 0;
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
            return(ret);
        }
示例#40
0
        /// <summary>
        /// Create a SqlCeCommand instance using the global SQL CE Connection instance and associate this with a transaction
        /// </summary>
        /// <param name="transaction">
        /// SqlCeTransaction to be used for the SqlCeCommand
        /// </param>
        /// <returns>
        /// The <see cref="SqlCeCommand"/>.
        /// </returns>
        public static SqlCeCommand CreateCommand(SqlCeTransaction transaction)
        {
            // TODO come up with a better way to check for the database file
            SqlCeCommand command;

                if (!File.Exists(ConfigurationSettings.AppSettings["DB_File"]))
                {
                    DatabaseFile.CreateDatabase();
                }
                command = Connection.CreateCommand();
            //try
            //{
            //    command = Connection.CreateCommand();
            //}
            //catch (SqlCeException notFound)
            //{

            //    if (notFound.Message.Contains("be found"))
            //    {

            //    }

            //    command = Connection.CreateCommand();
            //}

            command.Transaction = transaction;
            return command;
        }
示例#41
0
 /// <summary>
 ///     A SqlCeConnection extension method that executes the entity operation.
 /// </summary>
 /// <typeparam name="T">Generic type parameter.</typeparam>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>A T.</returns>
 public static T ExecuteEntity <T>(this SqlCeConnection @this, string cmdText, SqlCeTransaction transaction) where T : new()
 {
     return(@this.ExecuteEntity <T>(cmdText, null, CommandType.Text, transaction));
 }
 private static void InsertUpdatedCategories(List<ComparisonCategoryTreeNode> treeNodes, SqlCeTransaction transaction, SqlCeConnection conn)
 {
     for (int i = 0; i < treeNodes.Count; i++) {
        int parentId = treeNodes[i].Parent == null ? -1 : treeNodes.IndexOf(treeNodes[i].Parent as ComparisonCategoryTreeNode);
        if (parentId != -1) {
            ComparisonCategory comparisonCategory = treeNodes[i].comparisonCategory;
            comparisonCategory.categoryParentId = parentId;
            comparisonCategory.categoryId = i;
            InserNewCategory(comparisonCategory, transaction, conn);
            //  BackEndUtils.InsertFolderName(i, treeNodes[i].Text, parentId, transaction, conn);
        } else {
            ComparisonCategory comparisonCategory = treeNodes[i].comparisonCategory;
            comparisonCategory.categoryParentId = parentId;
            comparisonCategory.categoryId = i;
            InserNewCategory(comparisonCategory, transaction, conn);
        }
        }
 }
示例#43
0
        private void InitializeDatabase()
        {
            string connectionString = ConnectionString;

            Debug.AssertStringNotEmpty(connectionString);

            string dbFilePath = ConnectionStringHelper.GetDataSourceFilePath(connectionString);

            if (File.Exists(dbFilePath))
            {
                return;
            }
            using (SqlCeEngine engine = new SqlCeEngine(ConnectionString))
            {
                engine.CreateDatabase();
            }

            using (SqlCeConnection conn = new SqlCeConnection(ConnectionString))
            {
                using (SqlCeCommand cmd = new SqlCeCommand())
                {
                    conn.Open();
                    SqlCeTransaction transaction = conn.BeginTransaction();

                    try
                    {
                        cmd.Connection  = conn;
                        cmd.Transaction = transaction;

                        cmd.CommandText = @"
                        SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'ELMAH_Error'";

                        object obj = cmd.ExecuteScalar();
                        if (obj == null)
                        {
                            cmd.CommandText = @"
                            CREATE TABLE ELMAH_Error (
                                [ErrorId] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT newid(),
                                [Application] NVARCHAR(60) NOT NULL,
                                [Host] NVARCHAR(50) NOT NULL,
                                [Type] NVARCHAR(100) NOT NULL,
                                [Source] NVARCHAR(60) NOT NULL,
                                [Message] NVARCHAR(500) NOT NULL,
                                [User] NVARCHAR(50) NOT NULL,
                                [StatusCode] INT NOT NULL,
                                [TimeUtc] DATETIME NOT NULL,
                                [Sequence] INT IDENTITY (1, 1) NOT NULL,
                                [AllXml] NTEXT NOT NULL
                            )";
                            cmd.ExecuteNonQuery();

                            cmd.CommandText = @"
                            CREATE NONCLUSTERED INDEX [IX_Error_App_Time_Seq] ON [ELMAH_Error] 
                            (
                                [Application]   ASC,
                                [TimeUtc]       DESC,
                                [Sequence]      DESC
                            )";
                            cmd.ExecuteNonQuery();
                        }
                        transaction.Commit(CommitMode.Immediate);
                    }
                    catch (SqlCeException)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
 /// <summary>
 /// Crea un nuevo Comando para el proveedor actual
 /// </summary>
 /// <param name="cmdText">Cadena con el comando SQL</param>
 /// <param name="connection">Conexión a usar</param>
 /// <param name="transaction">Transacción a usar</param>
 /// <returns>Un nuevo comando</returns>
 public override System.Data.SqlServerCe.SqlCeCommand GetNewCommand(string cmdText, SqlCeConnection connection, SqlCeTransaction transaction)
 {
     return(new SqlCeCommand(cmdText, (SqlCeConnection)connection, (SqlCeTransaction)transaction));
 }
        /// <summary>
        /// InsertCustomer
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public static bool InsertCustomer(Customer customer)
        {
            var sql = @"INSERT INTO Customer(Name,Id,Phone,IM,Deposit,Remark,Discount,UpdateTime)
                        VALUES (@Name,@Id,@Phone,@IM,@Deposit,@Remark,@Discount,@UpdateTime)";
            var ret = false;

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                SqlCeTransaction tx = null;
                try
                {
                    conn.Open();
                    tx = conn.BeginTransaction();
                    SqlCeCommand command    = conn.CreateCommand();
                    var          parameters = new[]
                    {
                        new SqlCeParameter("Name", SqlDbType.NVarChar, 100)
                        {
                            Value = customer.Name
                        },
                        new SqlCeParameter("Id", SqlDbType.NVarChar, 50)
                        {
                            Value = customer.Id
                        },
                        new SqlCeParameter("Phone", SqlDbType.NVarChar, 100)
                        {
                            Value = customer.Phone ?? ""
                        },
                        new SqlCeParameter("IM", SqlDbType.NVarChar, 150)
                        {
                            Value = customer.IM ?? ""
                        },
                        new SqlCeParameter("Deposit", SqlDbType.Decimal)
                        {
                            Value = customer.Deposit
                        },
                        new SqlCeParameter("Remark", SqlDbType.NVarChar, 300)
                        {
                            Value = customer.Remark ?? ""
                        },
                        new SqlCeParameter("Discount", SqlDbType.Int)
                        {
                            Value = customer.Discount
                        },
                        new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                        {
                            Value = customer.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
                        },
                    };
                    command.Parameters.AddRange(parameters);
                    command.CommandText = sql;
                    ret = command.ExecuteNonQuery() > 0;

                    if (customer.Deposit > 0)
                    {
                        sql        = @"INSERT INTO DepositDetail (CustomerId,Detail,ItemSalesId,UpdateTime)
                                VALUES (@CustomerId,@Detail,@ItemSalesId,@UpdateTime)";
                        command    = conn.CreateCommand();
                        parameters = new[]
                        {
                            new SqlCeParameter("CustomerId", SqlDbType.NVarChar, 50)
                            {
                                Value = customer.Id
                            },
                            new SqlCeParameter("Detail", SqlDbType.NVarChar, 200)
                            {
                                Value = "增值---" + customer.Deposit + " 元"
                            },
                            new SqlCeParameter("ItemSalesId", SqlDbType.NVarChar, 50)
                            {
                                Value = ""
                            },
                            new SqlCeParameter("UpdateTime", SqlDbType.DateTime)
                            {
                                Value = customer.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
                            },
                        };
                        command.Parameters.AddRange(parameters);
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                    }

                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
            return(ret);
        }
示例#46
0
        /// <summary>
        /// Función que guarda un ServiceCategoryEntity en la base de datos.
        /// </summary>
        /// <param name="serviceCategory">ServiceCategoryEntity a guardar</param>
        /// <param name="scope">Estructura interna para evitar problemas con referencias circulares</param>
        /// <exception cref="ArgumentNullException">
        /// Si <paramref name="serviceCategory"/> no es un <c>ServiceCategoryEntity</c>.
        /// </exception>
        /// <exception cref="UtnEmallDataAccessException">
        /// Si una DbException ocurre cuando se accede a la base de datos
        /// </exception>
        public void Save(ServiceCategoryEntity serviceCategory, Dictionary <string, IEntity> scope)
        {
            if (serviceCategory == null)
            {
                throw new ArgumentException("The argument can't be null");
            }
            // Crear una clave unica para identificar el objeto dentro del scope interno
            string scopeKey = serviceCategory.Id.ToString(NumberFormatInfo.InvariantInfo) + "ServiceCategory";

            if (scope != null)
            {
                // Si se encuentra dentro del scope lo retornamos
                if (scope.ContainsKey(scopeKey))
                {
                    return;
                }
            }
            else
            {
                // Crea un nuevo scope si este no fue enviado
                scope = new Dictionary <string, IEntity>();
            }

            try
            {
                // Crea una nueva conexion y una nueva transaccion si no hay una a nivel superior
                if (!isGlobalTransaction)
                {
                    dbConnection = dataAccess.GetNewConnection();
                    dbConnection.Open();
                    dbTransaction = dbConnection.BeginTransaction();
                }

                string commandName = "";
                bool   isUpdate    = false;
                // Verifica si se debe hacer una actualización o una inserción

                if (serviceCategory.IsNew || !DataAccessConnection.ExistsEntity(serviceCategory.Id, "ServiceCategory", "idServiceCategory", dbConnection, dbTransaction))
                {
                    commandName = "INSERT INTO [ServiceCategory] (idServiceCategory, IDSERVICE, IDCATEGORY, [TIMESTAMP] ) VALUES( @idServiceCategory,  @idService,@idCategory, GETDATE()); ";
                }
                else
                {
                    isUpdate    = true;
                    commandName = "UPDATE [ServiceCategory] SET idService = @idService, idCategory = @idCategory , timestamp=GETDATE() WHERE idServiceCategory = @idServiceCategory";
                }
                // Se crea un command
                SqlCeCommand sqlCommand = dataAccess.GetNewCommand(commandName, dbConnection, dbTransaction);
                // Agregar los parametros del command .
                SqlCeParameter parameter;
                if (!isUpdate && serviceCategory.Id == 0)
                {
                    serviceCategory.Id = DataAccessConnection.GetNextId("idServiceCategory", "ServiceCategory", dbConnection, dbTransaction);
                }

                parameter       = dataAccess.GetNewDataParameter("@idServiceCategory", DbType.Int32);
                parameter.Value = serviceCategory.Id;
                sqlCommand.Parameters.Add(parameter);

                FillSaveParameters(serviceCategory, sqlCommand);
                // Ejecutar el command
                sqlCommand.ExecuteNonQuery();

                scopeKey = serviceCategory.Id.ToString(NumberFormatInfo.InvariantInfo) + "ServiceCategory";
                // Agregar la entidad al scope actual

                scope.Add(scopeKey, serviceCategory);
                // Guarda las colecciones de objetos relacionados.
                // Guardar objetos relacionados con la entidad actual
                // Actualizar
                // Cierra la conexión si fue abierta en la función
                if (!isGlobalTransaction)
                {
                    dbTransaction.Commit();
                }
                // Actualizar los campos new y changed

                serviceCategory.IsNew   = false;
                serviceCategory.Changed = false;
            }
            catch (DbException dbException)
            {
                // Anula la transaccion
                if (!isGlobalTransaction)
                {
                    dbTransaction.Rollback();
                }
                // Relanza una excepcion personalizada
                throw new UtnEmallDataAccessException(dbException.Message, dbException);
            }
            finally
            {
                // Cierra la conexión si fue inicializada
                if (!isGlobalTransaction)
                {
                    dbConnection.Close();
                    dbConnection  = null;
                    dbTransaction = null;
                }
            }
        }
 /// <summary>
 ///     Enumerates execute expando objects in this collection.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="commandType">Type of the command.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>
 ///     An enumerator that allows foreach to be used to process execute expando objects in this collection.
 /// </returns>
 public static IEnumerable <dynamic> ExecuteExpandoObjects(this SqlCeConnection @this, string cmdText, CommandType commandType, SqlCeTransaction transaction)
 {
     return(@this.ExecuteExpandoObjects(cmdText, null, commandType, transaction));
 }
示例#48
0
        /// <summary>
        /// Speichert die Person/Gruppe.
        /// </summary>
        /// <param name="db"></param>
        public void Save(DataBase dataBase)
        {
            SqlCeTransaction trans = dataBase.Connection.BeginTransaction(IsolationLevel.ReadCommitted);

            Big3.Hitbase.DataBaseEngine.PersonGroupDataSetTableAdapters.PersonGroupTableAdapter pgta = new Big3.Hitbase.DataBaseEngine.PersonGroupDataSetTableAdapters.PersonGroupTableAdapter(dataBase);
            pgta.Transaction = trans;
            PersonGroupDataSet.PersonGroupDataTable dt = pgta.GetDataById(id);

            PersonGroupDataSet.PersonGroupRow row = null;

            bool isNew         = false;
            int  personGroupId = 0;

            if (dt.Rows.Count == 1)
            {
                row           = dt[0];
                personGroupId = dt[0].PersonGroupID;
            }
            else
            {
                row   = dt.NewPersonGroupRow();
                isNew = true;
            }

            row.Name          = Name;
            row.SaveAs        = SaveAs;
            row.Type          = (int)Type;
            row.Sex           = (int)Sex;
            row.Country       = Country;
            row.BirthDay      = Birthday;
            row.DayOfDeath    = DayOfDeath;
            row.ImageFilename = ImageFilename;
            row.URL           = Homepage;
            row.Comment       = Comment;

            if (isNew)
            {
                dt.AddPersonGroupRow(row);
            }

            pgta.Update(dt);

            if (isNew)
            {
                personGroupId = (int)(decimal)dataBase.ExecuteScalar("SELECT @@IDENTITY", trans);
            }

            // Urls speichern
            string sql = string.Format("DELETE FROM Url Where ReferenceID = {0}", personGroupId);

            dataBase.ExecuteScalar(sql);

            UrlDataSetTableAdapters.UrlTableAdapter urlta = new UrlDataSetTableAdapters.UrlTableAdapter(dataBase);
            urlta.Transaction = trans;
            UrlDataSet.UrlDataTable urlDataTable = new UrlDataSet.UrlDataTable();
            foreach (Url url in Urls)
            {
                urlDataTable.AddUrlRow(personGroupId, 0, url.UrlType, url.Link);
            }
            urlta.Update(urlDataTable);

            // Jetzt noch die Mitwirkenden der Gruppe
            sql = string.Format("DELETE FROM GroupParticipant Where PersonGroupID = {0}", personGroupId);
            dataBase.ExecuteScalar(sql);

            GroupParticipantDataSetTableAdapters.GroupParticipantTableAdapter participantTableAdapter = new GroupParticipantDataSetTableAdapters.GroupParticipantTableAdapter(dataBase);
            participantTableAdapter.Transaction = trans;
            GroupParticipantDataSet.GroupParticipantDataTable participantsDataTable = new GroupParticipantDataSet.GroupParticipantDataTable();
            foreach (GroupParticipant gp in this.Participants)
            {
                if (!string.IsNullOrEmpty(gp.Name))
                {
                    int participantId = dataBase.GetPersonGroupByName(gp.Name, true).ID;
                    int roleId        = dataBase.GetRoleByName(gp.Role, true).RoleID;

                    participantsDataTable.AddGroupParticipantRow(personGroupId, participantId, roleId, gp.Begin == null ? "" : gp.Begin, gp.End == null ? "" : gp.End);
                }
            }
            participantTableAdapter.Update(participantsDataTable);

            trans.Commit();
        }
 private static void DeleteEnvResultsCategories(SqlCeTransaction transaction, SqlCeConnection conn)
 {
     SqlCeCommand command = new SqlCeCommand(Env_Comparison_Categories_SQL.commandDeleteAllEnvCategories, conn);
        command.Transaction = transaction;
        command.Connection = conn;
        command.ExecuteNonQuery();
 }
示例#50
0
 /// <summary>
 ///     A SqlCeConnection extension method that executes the expando object operation.
 /// </summary>
 /// <param name="this">The @this to act on.</param>
 /// <param name="cmdText">The command text.</param>
 /// <param name="transaction">The transaction.</param>
 /// <returns>A dynamic.</returns>
 public static dynamic ExecuteExpandoObject(this SqlCeConnection @this, string cmdText, SqlCeTransaction transaction)
 {
     return(@this.ExecuteExpandoObject(cmdText, null, CommandType.Text, transaction));
 }
 public void BeginTransation()
 {
     m_Transaction = m_Conn.BeginTransaction(IsolationLevel.ReadCommitted);
 }
示例#52
0
        /// <summary>
        /// Función que elimina un ServiceCategoryEntity de la base de datos.
        /// </summary>
        /// <param name="serviceCategory">ServiceCategoryEntity a eliminar</param>
        /// <param name="scope">Estructura interna para evitar problemas de referencia circular.</param>
        /// <exception cref="ArgumentNullException">
        /// Si <paramref name="serviceCategory"/> no es un <c>ServiceCategoryEntity</c>.
        /// </exception>
        /// <exception cref="UtnEmallDataAccessException">
        /// Si una DbException ocurre cuando se accede a la base de datos
        /// </exception>
        public void Delete(ServiceCategoryEntity serviceCategory, Dictionary <string, IEntity> scope)
        {
            if (serviceCategory == null)
            {
                throw new ArgumentException("The argument can't be null");
            }
            try
            {
                // Abrir una nueva conexión e inicializar una transacción si es necesario
                if (!isGlobalTransaction)
                {
                    dbConnection = dataAccess.GetNewConnection();
                    dbConnection.Open();
                    dbTransaction = dbConnection.BeginTransaction();
                }
                // Carga la entidad para garantizar eliminar todos los datos antiguos.

                serviceCategory = this.Load(serviceCategory.Id, true);
                if (serviceCategory == null)
                {
                    throw new UtnEmallDataAccessException("Error al recuperar datos al intentar eliminar.");
                }
                // Crea un nuevo command para eliminar
                string       cmdText    = "DELETE FROM [ServiceCategory] WHERE idServiceCategory = @idServiceCategory";
                SqlCeCommand sqlCommand = dataAccess.GetNewCommand(cmdText, dbConnection, dbTransaction);
                // Agrega los valores de los parametros
                SqlCeParameter parameterID = dataAccess.GetNewDataParameter("@idServiceCategory", DbType.Int32);
                parameterID.Value = serviceCategory.Id;
                sqlCommand.Parameters.Add(parameterID);
                // Ejecuta el comando

                sqlCommand.ExecuteNonQuery();
                // Elimina los objetos relacionados
                // Confirma la transacción si se inicio dentro de la función
                if (!isGlobalTransaction)
                {
                    dbTransaction.Commit();
                }
                // Eliminamos la entidad de la lista de entidades cargadas en memoria

                inMemoryEntities.Remove(serviceCategory.Id);
                // Eliminamos la entidad del scope

                if (scope != null)
                {
                    string scopeKey = serviceCategory.Id.ToString(NumberFormatInfo.InvariantInfo) + "ServiceCategory";
                    scope.Remove(scopeKey);
                }
            }
            catch (DbException dbException)
            {
                // Anula la transaccion
                if (!isGlobalTransaction)
                {
                    dbTransaction.Rollback();
                }
                // Relanza una excepcion personalizada
                throw new UtnEmallDataAccessException(dbException.Message, dbException);
            }
            finally
            {
                // Cierra la conexión si fue abierta dentro de la Función
                if (!isGlobalTransaction)
                {
                    dbConnection.Close();
                    dbConnection  = null;
                    dbTransaction = null;
                }
            }
        }