public static int InsertDataRowIntoTable(this SQLiteGateWay SQLiteGateWay, DataRow DataRow, bool CreateColumns = false) { var ColumnNames = DataRow.Table.GetColumnNames(); SQLiteGateWay.EnsureColumnsExists(ColumnNames, DataRow.Table.TableName, CreateColumns); var Fields = ColumnNames .ToJoinedString(); var ParameterNames = ColumnNames .Select(ColumnName => ":" + ColumnName) .ToJoinedString(); var ColumnNamesParameter = ColumnNames .Select(ColumnName => new SQLiteParameter(":" + ColumnName, DataRow[ColumnName])) .ToArray(); return(SQLiteGateWay.Insert($"insert into {DataRow.Table.TableName} ({Fields}) values ({ParameterNames})", ColumnNamesParameter)); }