Ejemplo n.º 1
0
        //--пока этот метод вызывается из CreateTable, проверку на _conn.Open делать не надо, но как только будет отдельно, надо будет делать!
        protected virtual void InsertDataToDb(DataTable table, string parameters_prefix, bool PrepareTableForInsert)
        {
            string insert_sql    = string.Format("insert into {0} values(", table.TableName);
            Array  insert_params = new DbParameter[table.Columns.Count];

            for (int i = 0; i < table.Columns.Count; i++)
            {
                insert_sql = string.Format("{0}{2}{1}", insert_sql, table.Columns[i].ColumnName + (i + 1 != table.Columns.Count ? "," : ")"), parameters_prefix);
                DbParameter par = CreateParameter(string.Format("{1}{0}", table.Columns[i].ColumnName, parameters_prefix), Utilities.SystemTypeToDbTypeConverter.Convert(table.Columns[i].DataType), table.Columns[i].MaxLength);
                par.SourceColumn = table.Columns[i].ColumnName;
                insert_params.SetValue(par, i);
            }

            _DA = CreateDataAdapter("");
            var ins_cmd = CreateCommand(insert_sql);

            ins_cmd.Parameters.AddRange(insert_params);

            if (PrepareTableForInsert)
            {
                MarkTableRowsAsAdded(table);
            }

            try
            {
                _DA.InsertCommand = ins_cmd;
                _DA.Update(table);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }