Esempio n. 1
0
        public bool Insert()
        {
            if (!OnRowChanged(ObjectState.Added, false))
                return false;

            string SQL = insertQuery();

            #if DEBUG
            Validate();
            #endif

            SqlCmd sqlCmd = new SqlCmd(this.TableName.Provider, SQL);
            foreach (ColumnAdapter column  in columns)
            {
                if (column.Field.Identity)
                {
                    if (!this.InsertIdentityOn)
                        column.AddIdentityParameter(sqlCmd);
                    else
                        column.AddParameter(sqlCmd);
                }
                else if (column.Field.Saved || column.Field.Primary)
                {
                    column.AddParameter(sqlCmd);

                    if (column.IsValueChanged)
                        column.OnVauleChanged();
                }
            }

            if (this.transaction != null)
                transaction.Add(sqlCmd);

            sqlCmd.ExecuteNonQuery();

            //Identity Columns
            if (!this.InsertIdentityOn)
            {
                bool hasIdentity = false;
                foreach (ColumnAdapter column in columns)
                {
                    if (column.Field.Identity)
                    {
                        hasIdentity = true;
                        dataRow[column.Field.Name] = sqlCmd.GetReturnValue(column.Field.ParameterName);
                        column.UpdateValue(dataRow);
                    }
                }
                if (hasIdentity)
                    OnRowChanged(ObjectState.Added, true);
            }

            return true;
        }
Esempio n. 2
0
        public bool Insert()
        {
            if (!OnRowChanged(ObjectState.Added, false))
            {
                return(false);
            }

            string SQL = insertQuery();

#if DEBUG
            Validate();
#endif

            SqlCmd sqlCmd = new SqlCmd(this.TableName.Provider, SQL);
            foreach (ColumnAdapter column  in columns)
            {
                if (column.Field.Identity)
                {
                    if (!this.InsertIdentityOn)
                    {
                        column.AddIdentityParameter(sqlCmd);
                    }
                    else
                    {
                        column.AddParameter(sqlCmd);
                    }
                }
                else if (column.Field.Saved || column.Field.Primary)
                {
                    column.AddParameter(sqlCmd);

                    if (column.IsValueChanged)
                    {
                        column.OnVauleChanged();
                    }
                }
            }

            if (this.transaction != null)
            {
                transaction.Add(sqlCmd);
            }

            sqlCmd.ExecuteNonQuery();

            //Identity Columns
            if (!this.InsertIdentityOn)
            {
                bool hasIdentity = false;
                foreach (ColumnAdapter column in columns)
                {
                    if (column.Field.Identity)
                    {
                        hasIdentity = true;
                        dataRow[column.Field.Name] = sqlCmd.GetReturnValue(column.Field.ParameterName);
                        column.UpdateValue(dataRow);
                    }
                }
                if (hasIdentity)
                {
                    OnRowChanged(ObjectState.Added, true);
                }
            }

            return(true);
        }