Преобразовать строку в иерархию в C # - PullRequest
1 голос
/ 17 августа 2010

Мне нужно иметь возможность преобразовать строку в иерархию в c # .net - я не могу использовать хранимые процедуры.

Когда я передаю путь (строку), запрос не выполняется, так как путь сохраняется какэто '/' вместо /

Могу ли я преобразовать его в другой тип?

SqlCommand command = new SqlCommand("INSERT Structure (Path,Description,ParentID) " +
    "VALUES(" + path + ".GetDescendant(" + lastChildPath +
    ", NULL) " +
    ",@description, @parentId", _connection);

- BitKFu

Я добавил иэто SQL-запрос, который он производит:

CommandText = "INSERT Structure (Path,Description,ParentID) VALUES(CAST(/ AS hierarchyid).GetDescendant(NULL, NULL) ,@description, @parentId"

Я получаю следующую ошибку: ex = {"Неверный синтаксис рядом с / /."casts

- ск

Это то, что я ожидаю

"INSERT Structure (Path,Description,ParentID) VALUES(/.GetDescendant(NULL, NULL) ,'Test', 1"

- Пол Руан

Я уже просматривал эту страницу, но это действительно не помоглоразве я что-то упустил?

Спасибо

Клэр

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Я бы попробовал разыграть его, если только '' неверно.

SqlCommand command = new SqlCommand("INSERT Structure (Path,Description,ParentID) " +
    "VALUES(CAST('"+path+"' AS hierarchyid).GetDescendant(" + lastChildPath +
    ", NULL) " +
    ",@description, @parentId", _connection);
0 голосов
/ 31 декабря 2015

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

Вы можете преобразовать строку в HierarchyId в C #, используя пространство имен Microsoft.SqlServer.Types и что-то вроде:

<code>SqlHierarchyId hierarchyIdRepresentation = (SqlHierarchyId)Convert.ChangeType(input, typeof(SqlHierarchyId))

или

<code>SqlHierarchyId hierarchyIdRepresentation = SqlHierarchyId.Parse(input)

Метод .Parse() вызывается автоматически каждый раз, когда происходит преобразование из строки, а метод .ToString() типа SqlHierarchyId переопределяет стандартный оператор строки для возврата канонического представления.

Источник: https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlhierarchyid_methods(v=sql.105).aspx

...