Здравствуйте,
подскажите пожалуйста еще такой момент:
как я могу програмно корректно заполнить список столбцов у источника данных?
сейчас я перед выводом редактора задаю соединение и источник данных для каждой таблицы
Код: Выделить всё
StiReport report = new StiReport();
report.Dictionary.Databases.Add(new StiMySqlDatabase(DataBaseName, ConnectionString));
foreach (String tableName in tables)
{
report.Dictionary.DataSources.Add(new StiMySqlSource(DataBaseName, tableName, tableName, "SELECT * FROM " + tableName, true, false, 60));
}
У источника данных объявлена функция FillColumns(), но в документации описания у неё нет, и при попытке её использовать
Код: Выделить всё
foreach (String tableName in tables)
{
StiMySqlSource source= new StiMySqlSource(DataBaseName, tableName, tableName, "SELECT * FROM " + tableName, true, false, 60)
report.Dictionary.DataSources.Add(source);
source.FillColumns(); //если поставить FillColumns перед строкой добавления в словарь- выдает исключение "ссылка не указывает на объект"... както так
}
ничего не меняется. В редакторе у соединения DataBaseName есть источники, в свойствах у них задан sql запрос, но столбцов нет.
я попытался получить столбцы из БД для каждой таблицы
Код: Выделить всё
foreach (String tableName in tables)
{
StiMySqlSource source= new StiMySqlSource(DataBaseName, tableName, tableName, "SELECT * FROM " + tableName, true, false, 60)
report.Dictionary.DataSources.Add(source);
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM " + tableName, con);
DataTable table = new DataTable();
adapter.Fill(table);
foreach (DataColumn tableColumn in table.Columns)
{
source.Columns.Add(new StiDataColumn(tableName, tableColumn.ColumnName, tableColumn.ColumnName, tableColumn.DataType));
}
}
в редакторе у всех таблиц столбцы заполнены, но тип столбца везде "string"... тоесть tableColumn.DataType всегда "string".
при этом если я в редакторе открываю свойства источника данных, жму Retrieve Columns он заполняет всё правильно...
как мне получить такой же результат до вывода редактора (чтоб не приходилось для каждой таблицы лезть в свойства и жать Retrieve Columns)?