Хранение соединений в моем приложении
Хранение соединений в моем приложении
Здравствуйте!
У меня есть потребность создавать и хранить соединения с БД в своем приложении и регистрировать их в отчете программно.
Подскажите, как это правильно сделать?
Спасибо.
У меня есть потребность создавать и хранить соединения с БД в своем приложении и регистрировать их в отчете программно.
Подскажите, как это правильно сделать?
Спасибо.
Хранение соединений в моем приложении
Здравствуйте,
Можно использовать такой код:
Спасибо.
Можно использовать такой код:
Код: Выделить всё
report.Databases.Clear();
report.Databases.Add(new Stimulsoft.Report.Dictionary.StiOleDbDatabase("NameInReport", ConnectionString);
Хранение соединений в моем приложении
У меня ситуация сложнее.
Я не знаю, какой тип соединения будет создаваться. Поэтому мне нужно использовать StiDatabase.
Для создания и редактирования соединения хочу воспользоваться вашим мастером.
Вот что мне удалось добиться:
Осталось непонятно как добраться к ConnectionString и PromptUserNameAndPassword.
Я не знаю, какой тип соединения будет создаваться. Поэтому мне нужно использовать StiDatabase.
Для создания и редактирования соединения хочу воспользоваться вашим мастером.
Вот что мне удалось добиться:
Код: Выделить всё
// Создание нового соединения
StiDatabase database = StiReportNewConnection.CreateNewConnection();
if (database == null) return;
// Эти параметры будут сохранены в БД
string connectionType = database.GetType().ToString();
string connectionName = database.Name;
string connectionAlias = database.Alias;
string connectionString = database.ConnectionString; //???
bool connectionPromptUserNameAndPassword = database.PromptUserNameAndPassword; //???
Код: Выделить всё
// Редактирование соединения
StiDatabase database = StiActivator.CreateObject(connectionType) as StiDatabase;
database.Name = connectionName;
database.Alias = connectionAlias;
database.ConnectionString = connectionString; //???
database.PromptUserNameAndPassword = connectionPromptUserNameAndPassword; // ???
if (database.Edit(false) == DialogResult.OK)
{
// Сохранение в БД
}
Код: Выделить всё
// Регистрация
report.Dictionary.Databases.Clear();
// дальше, конечно, должен быть цикл...
StiDatabase database = StiActivator.CreateObject(connectionType) as StiDatabase;
database.Name = connectionName;
database.Alias = connectionAlias;
database.ConnectionString = connectionString; //???
database.PromptUserNameAndPassword = connectionPromptUserNameAndPassword; // ???
report.Dictionary.Databases.Add(database);
Хранение соединений в моем приложении
Извиняюсь, сразу не обратил внимание, что не все типы соединений имеют ConnectionString и PromptUserNameAndPassword.
Нужно выполнять приведение к конкретному типу:
Также можно использовать StiSerializing и сохранять в БД сериализованный объект.
Поправьте, если что не так.
Нужно выполнять приведение к конкретному типу:
Код: Выделить всё
if(database is StiSqlDatabase)
(database as StiSqlDatabase).ConnectionString = connectionString;
Код: Выделить всё
StiSerializing serializer = new StiSerializing(new StiReportObjectStringConverter());
serializer.Serialize(database, stream, "MyApplication");
serializer.Deserialize(database, stream, "MyApplication");
Хранение соединений в моем приложении
Здравствуйте,
Все верно, нечего добивать.
Спасибо.
Все верно, нечего добивать.
Спасибо.