2017-02-03 3 views
0

В настоящее время я пытаюсь извлечь данные из Kentico с помощью веб-API C#, и я могу успешно вытащить данные, но я также планирую хранить его в базе данных.Запрос API GET - Типы данных формы

Используя вызов, как: /rest/bizformitem.bizform.contactus

я получаю обратно все данные внутри формы, но так как я храню эти значения в базу данных, я хотел бы знать тип данных поля для этого вида имя/значение ,

Большинство ссылок на API имеют списки, такие как: ID:USER_ID | Type:int | Desc:User ID Form Field.

Я пытаюсь найти ссылку через API или документацию для этих значений в форме, поэтому любая помощь будет оценена.

ответ

1

Вы хотите посмотреть в таблице базы данных CMS_Class. Найдите свой класс, тогда есть поле ClassFormDefinition, оно имеет XML, который показывает все поля с типами.

Загрузите XML в XmlDocument, то SelectNodes для // поля [@ колонке = "YourColumnName"], ниже образец XML

<field column="CultureName" visible="true" columntype="text" fieldtype="CustomUserControl" system="true" columnsize="200" publicfield="false" guid="7b7c2f84-da09-4874-aade-a4d3b77b975d"> 

Теперь обратите внимание, что columntype являются своим родом Kentico конкретного именования, поэтому вам нужно сделать переход, чтобы преобразовать его в .Net-классы или SQL-базы данных.

switch (fieldType) 
     { 
      case "longtext": 
      case "text": 
      default: 
       dt.Columns.Add(fieldName, typeof(string)); 
       break; 
      case "binary": 
       dt.Columns.Add(fieldName, typeof(byte[])); 
       break; 
      case "boolean": 
       dt.Columns.Add(fieldName, typeof(Boolean)); 
       break; 
      case "date": 
       dt.Columns.Add(fieldName, typeof(DateTime)); 
       break; 
      case "datetime": 
       dt.Columns.Add(fieldName, typeof(DateTime)); 
       break; 
      case "decimal": 
       dt.Columns.Add(fieldName, typeof(Decimal)); 
       break; 
      case "double": 
       dt.Columns.Add(fieldName, typeof(Double)); 
       break; 
      case "integer": 
       dt.Columns.Add(fieldName, typeof(Int32)); 
       break; 
      case "longinteger": 
       dt.Columns.Add(fieldName, typeof(Int64)); 
       break; 
      case "timespan": 
       dt.Columns.Add(fieldName, typeof(TimeSpan)); 
       break; 
      case "guid": 
       dt.Columns.Add(fieldName, typeof(Guid)); 
       break; 
     } 
+0

Доступна ли таблица базы данных CMS_Class через API REST? – confusedandamused

+0

Да, вы можете получить данные через '/ rest/cms.class/all' – rocky

+0

@rocky Есть ли причина при попытке' /rest/cms.form/all или/rest/cms.class/all' Я получаю 403 ошибка? – confusedandamused

Смежные вопросы