//--пока этот метод вызывается из 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); } }