Я хочу разработать модуль для сопоставления данных из внешней базы данных с маркетинговыми контактами Kentico в Интернете. Есть ли простой способ перечислить имена и заголовки полей для всех стандартных и настраиваемых полей из встроенного класса OM.Contact?
Перечисление полей контактов Kentico
Ответы (1)
Получение данных из внешней БД
Есть масса способов получить данные из базы данных и поместить их в память. Вот один универсальный сценарий, который я использую довольно часто:
//Set the connection string
string ConnectionString = externalDBConnectionString;
//Sets the text of the query we want to execute on the database to a variable called queryText
string queryText = "SELECT * FROM Table";
//Creates a new instance of the SqlDataAdapter object and calls it "adapter".
//We pass in the text of the query we want to execute on the database, and the connetion string to the database.
SqlDataAdapter adapter = new SqlDataAdapter(queryText, ConnectionString);
//Instantiate a dataset.
DataSet ds = new DataSet();
//Fills the dataset with the data retrieved by our query on the database.
adapter.Fill(ds);
Получение данных от Kentico
Получить данные от Kentico еще проще. У Kentico есть API, который использует объекты Info, которые представляют собой простые структуры данных, и объекты InfoProvider, которые содержат (среди прочего) методы для заполнения объектов Info данными и выполнения операций CRUD в базе данных Kentico.
Они работают так:
// Instantiate a ContactInfo object
ContactInfo ci = new ContactInfo();
// Populate it with data using the InfoProvider's GetContactInfo() method
ci = new ContactInfoProvider.GetContactInfo(ContactID);
// Shorthand
ContactInfo ci = new ContactInfoProvider.GetContactInfo(ContactID);
// Assign values to your server control properties using the properties of the Info object
txtFormField.Text = ci.ContactName;
Для перемещения данных туда и обратно из вашей внешней БД и БД Kentico вам потребуется сопоставить поля и соответствующие им типы данных друг с другом, а затем выполнить запрос к БД с отформатированными данными.
person
Jerreck
schedule
10.09.2014
Мне действительно нужно заполнить список полей контактов в коде и сохранить его в коллекции для обработки. Я хочу иметь возможность динамически определять список полей контактов.
- person emroc; 10.09.2014
Ах, я тебя неправильно понял. Вероятно, вы захотите использовать объекты ContactInfo и ContactInfoProvider. Сегодня вечером я обновлю свой ответ, чтобы показать вам, как запускать операции CRUD в базе данных Kentico с объектами InfoProvider. Все, что вам нужно сделать, это заполнить набор данных данными из внешней базы данных, вставить его в инфо-объект, а затем создать / обновить с помощью объекта InfoProdiver. А пока вы можете ознакомиться с этим руководством от Kentico (начало на странице 184). Это версия 6, но классы, вероятно, не сильно изменились: devnet.kentico.com/ docs / 6_0 / KenticoCMS_OnlineMarketingGuide.pdf
- person Jerreck; 10.09.2014
О, и вы также можете использовать данные, которые вы передаете в объект ContactInfo, для заполнения полей формы. Неважно, заполняете ли вы объект Info данными из внешней базы данных или Kentico.
- person Jerreck; 10.09.2014
Без проблем. Рад, что смог помочь :)
- person Jerreck; 15.09.2014
@emroc, если это был правильный ответ на ваш вопрос, вам нужно будет щелкнуть галочку в верхней части этого ответа. Это поможет будущим пользователям, и я буду получать баллы;)
- person Jerreck; 16.09.2014