Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C# & MSSQL]Иерархический справочник 
:(
    Опции темы
Oxana
Дата 12.9.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



Помогите решить задачку. Задачка:

На базе WinForms 2.0 (исключая компоненты 3х лиц) реализовать интерфейс по вводу/редактированию иерархического справочника с неограниченной глубиной вложенности (Код - Наименование - Код родителя)
Используя MS SQL сервер реализовать бизнесс логику по поиску узла из справочника по ряду критериев:
а) поиск по наименованию узла
б) а) + начиная с указанного узла как предка результирующего набора
в) а) + исключительно "висячие" вершины "дерева", т.е. не имеющих потомков

Код вродь написала, но не все правильно работает. Если нужно, то могу выложить код.

Заранее пасиба.

Это сообщение отредактировал(а) Oxana - 12.9.2008, 12:33
PM MAIL   Вверх
Oxana
Дата 12.9.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



Тогда по частям, по конкретным вопросам))
В чем дело? Переименовывается только когда я переименовываю 2а раза. Т.е. переименовала в "Вася"(в Бд ничё не изменилось), после переименовываю в "Петя", в БД изменяется, но не на "Петя" а на "Вася". и так далее, т.е. изменяется не на последнее изменение,а на предпоследнее. Вот код:

C#:
Код

private void RenameMethod()
        {
            
            
            TreeNode tn = tvwMain.SelectedNode;            
            
            try
            {
                conn.Open();               
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "RenameProcedure";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@paramName", SqlDbType.Char, 10);
                cmd.Parameters["@paramName"].Value = tn.Text;
                cmd.Parameters.Add("@paramId", SqlDbType.Char, 10);
                cmd.Parameters["@paramId"].Value = tn.Tag;
                
                cmd.ExecuteNonQuery();
                
                
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка подключения к БД", "Ошибка!");
            }
            finally
            {
                conn.Close();
            }
        }


SQL:
Код

CREATE PROCEDURE RenameProcedure 

@paramId        char(10),
@paramName  char(10)
AS
Update Tree
Set ElementName = @paramName
where ElementId = @paramId
GO


Это сообщение отредактировал(а) Oxana - 12.9.2008, 13:49
PM MAIL   Вверх
comtat
Дата 12.9.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 8
Всего: 71



Цитата(Oxana @  12.9.2008,  12:30 Найти цитируемый пост)
Код вродь написала, но не все правильно работает. Если нужно, то могу выложить код.

выложи структуры таблиц

Это сообщение отредактировал(а) comtat - 12.9.2008, 16:42


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Oxana
Дата 12.9.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



БД состоит из одной таблицы:


Tree
ElementId
ElementName
ParentId

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.