Beispiel #1
0
        /// <summary>
        /// Inserta la fila pasada por parámetro en la base de datos. La tabla en la que se insertará dependará del campo TableName.
        /// </summary>
        /// <param name="newRow">Fila nueva que se insertará en la base de datos.</param>
        /// <returns>La fila insertada, con los id's inicializados de la base de datos.</returns>
        public virtual DataRow Insert(DataRow newRow)
        {
            try
            {
                if (newRow == null)
                {
                    throw new NullReferenceException("Cannot insert a null row");
                }

                string        query = "SELECT * FROM " + this.TableName;
                DbDataAdapter adapter;

                if (uniqueconn == null)
                {
                    connect();
                    adapter = sql.Adapter(query, conn);
                }
                else
                {
                    adapter = sql.Adapter(query, uniqueconn);
                }

                DataSet dSet = new DataSet();
                adapter.Fill(dSet, this.TableName);
                DataTable dTable = dSet.Tables[this.TableName];
                rowReturned = true;

                voidRow = dTable.NewRow();
                DataRow addRow = dTable.NewRow();
                addRow.ItemArray = newRow.ItemArray;
                dTable.Rows.Add(addRow);

                sql.Builder(adapter);
                adapter.Update(dSet, tablename);

                return(this.Last());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (uniqueconn == null)
                {
                    disconnect();
                }
            }
        }