Я пытаюсь запустить прикрепленный код, чтобы обновить некоторые данные для определенного типа документа, но на самом деле ничего не обновляет. методКак использовать метод Kentico TreeNode.Update?
Мой currentDocumentNodeId() тянет обратно NodeId на основе некоторых других критериев, а затем каждый из этих узлов, что он получает это типа HG.DocumentLibraryItem, которые имеют столбцы IsPublic, IsRepMining, IsRepPower, IsRepProcess и IsRepFlexStream , Но когда я вызываю метод обновления, а затем отбрасываю те столбцы в таблице SQL для этого настраиваемого типа документа, значения имеют значение Null. Каждый из этих столбцов в типе документа HG.DocumentLibraryItem имеет значение boolean. Я попытался использовать метод Node.SetValue() и установил его в true и 1; ни один из способов не работает для обновления этого столбца.
Любые идеи, что я делаю неправильно? Правильно ли я делаю звонок?
Смотрите мой код ниже:
public static void GetDocumentAreaAssignments()
{
var cmd = new SqlCommand
{
CommandText ="This is pulling back 2 rows, one with Id and one with Text",
CommandType = CommandType.Text,
Connection = OldDbConnection
};
OldDbConnection.Open();
try
{
using (SqlDataReader rdr = cmd.ExecuteReader())
{
var count = 0;
while (rdr.Read())
{
try
{
var documentId = TryGetValue(rdr, 0, 0);
var areaAssignment = TryGetValue(rdr, 1, "");
var currentDocumentNodeId = GetNodeIdForOldDocumentId(documentId);
var node = currentDocumentNodeId == 0
? null
: Provider.SelectSingleNode(currentDocumentNodeId);
if (node != null)
{
switch (areaAssignment.ToLower())
{
case "rep mining":
node.SetValue("IsRepMining", 1);
break;
case "rep power":
node.SetValue("IsRepPower", 1);
break;
case "rep process":
node.SetValue("IsRepProcess", 1);
break;
case "rep flexStream":
node.SetValue("IsFlexStream", 1);
break;
case "public":
node.SetValue("IsPublic", 1);
break;
}
node.Update();
Console.WriteLine("Changed Areas for Node {0}; item {1} complete", node.NodeID,
count + 1);
}
}
catch (Exception ex)
{
}
count++;
}
}
}
catch (Exception)
{
}
OldDbConnection.Close();
}