Перечисление полей контактов Kentico

Я хочу разработать модуль для сопоставления данных из внешней базы данных с маркетинговыми контактами Kentico в Интернете. Есть ли простой способ перечислить имена и заголовки полей для всех стандартных и настраиваемых полей из встроенного класса OM.Contact?


person emroc    schedule 08.09.2014    source источник


Ответы (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
comment
Мне действительно нужно заполнить список полей контактов в коде и сохранить его в коллекции для обработки. Я хочу иметь возможность динамически определять список полей контактов. - person emroc; 10.09.2014
comment
Ах, я тебя неправильно понял. Вероятно, вы захотите использовать объекты ContactInfo и ContactInfoProvider. Сегодня вечером я обновлю свой ответ, чтобы показать вам, как запускать операции CRUD в базе данных Kentico с объектами InfoProvider. Все, что вам нужно сделать, это заполнить набор данных данными из внешней базы данных, вставить его в инфо-объект, а затем создать / обновить с помощью объекта InfoProdiver. А пока вы можете ознакомиться с этим руководством от Kentico (начало на странице 184). Это версия 6, но классы, вероятно, не сильно изменились: devnet.kentico.com/ docs / 6_0 / KenticoCMS_OnlineMarketingGuide.pdf - person Jerreck; 10.09.2014
comment
О, и вы также можете использовать данные, которые вы передаете в объект ContactInfo, для заполнения полей формы. Неважно, заполняете ли вы объект Info данными из внешней базы данных или Kentico. - person Jerreck; 10.09.2014
comment
Без проблем. Рад, что смог помочь :) - person Jerreck; 15.09.2014
comment
@emroc, если это был правильный ответ на ваш вопрос, вам нужно будет щелкнуть галочку в верхней части этого ответа. Это поможет будущим пользователям, и я буду получать баллы;) - person Jerreck; 16.09.2014