Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Необходимо загрузить данные из иерархического справочника в TreeView. Имеется такой метод: public void CreateNodes(string iParent, TreeNode pNode) { DataView dvwTree = new DataView(dataSet11.Tables[0]); dvwTree.RowFilter = "PARENTID = " + iParent; foreach(DataRowView Row in dvwTree) { string id = Row["ID"].ToString(); чего-то там... } } Когда доходит до цикла foreach(), появляется сообщение об ошибке: Cannot perform '=' operation on System.String and System.Int32. PARENTID и ID столбцы в таблице базы данных на SQL-сервере, типа Char. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 11:14 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Хочу предупредить: foreach(DataRowView Row in dvwTree) переберет все строки игнорируя RowFilter надо использовать: for(i = 0; i < DataRowView.Count -1; i++) ToString то-же не шел пришлось CType... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 13:00 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
мне кажется, что нужно поменять d dvwTree.RowFilter = "PARENTID = " + iParent; на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 13:01 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Лиман Артёммне кажется, что нужно поменять d dvwTree.RowFilter = "PARENTID = " + iParent; на Код: plaintext В конце концов, я так и сделал. Но, хотелось создать более универсальный код, а в этом случае необходимо заранее знать точный размер поля и положение необходимого символа (в данном случае '0') в строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:15 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Лиман Артёммне кажется, что нужно поменять d dvwTree.RowFilter = "PARENTID = " + iParent; на Код: plaintext В конце концов, я так и сделал. Но, хотелось создать более универсальный код, а в этом случае необходимо заранее знать точный размер поля и положение необходимого символа (в данном случае '0') в строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:24 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
S_Shmall Но, хотелось создать более универсальный код, а в этом случае необходимо заранее знать точный размер поля и положение необходимого символа (в данном случае '0') в строке. что-то ничего не понял...каой еще размер тебе надо знать, для чего? А положение сивола тут причем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:26 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Лиман Артёммне кажется, что нужно поменять d dvwTree.RowFilter = "PARENTID = " + iParent; на Код: plaintext В конце концов, я так и сделал. Но, хотелось создать более универсальный код, а в этом случае необходимо заранее знать точный размер поля и положение необходимого символа (в данном случае '0') в строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 15:25 |
|
||
|
Перебор строк в DataView
|
|||
|---|---|---|---|
|
#18+
Лиман Артём S_Shmall Но, хотелось создать более универсальный код, а в этом случае необходимо заранее знать точный размер поля и положение необходимого символа (в данном случае '0') в строке. что-то ничего не понял...каой еще размер тебе надо знать, для чего? А положение сивола тут причем? Ну, вот конкретный пример. Таблица реальная из "1С: Предприятия". То самое поле parentid имеет в таблице размер 9 символов и тип Char. Причем понятно, что это поле ссылается на поле id (таблица иерархическая). Соответственно поле id также Char и [9]. Так вот этот самый код находится в середине этой строки. Если делать выражение фильтра "PARENTID = '" + iParent + "'", то в результате при iParent = "0" это выражение выглядит так ParentID = 0. Если (как в нашем случае) этот самый 0 в поле находится в середине строки, то выражение = false, и выборка, соответственно, пуста. В конце концов, я сделал так "Trim(PARENTID) = '" + iParent.Trim() + "'"/ Вроде бы заработало, но не покидает смутное ощущение какой-то кривости кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32782358&tid=1437906]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 341ms |

| 0 / 0 |
