Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2012, 12:03   #1
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию Вывод по порядку

Задача: вывод списка вопросов из таблицы 2 с ID указанными через запятую в таблице 1 поле Ochered.
Что имеем: формазагружается список выводится, всё прекрасно отфильтровывая.
Проблема: Вывод осуществляется по возрастанию значения ID таблицы 2 (1,2,3,4,5), а хотелось бы, что бы вывод осуществлялся в порядке указанном в поле Ochered таблицы 1, к примеру 5,3,1,2,4.

Код:
private void richTextBox1_TextChanged(object sender, EventArgs e)
        bool noCheck = true;
        private void treeView1_BeforeCheck(object sender, TreeViewCancelEventArgs e)
        {
            if (noCheck)
            {
                noCheck = false;
                foreach (TreeNode node in treeView1.Nodes)
                {
                    node.Checked = false;
                }
                noCheck = true;
            }
        }
       private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
                if (e.Node.Checked)
                {
                    treeView1.SelectedNode = e.Node;
     Form Form2 = new Form2(tb1.Rows[e.Node.Index]["Ochered"].ToString());
                    Form2.Show(); 

            }
        }


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.06.2012 в 12:53.
kronadenis вне форума Ответить с цитированием
Старый 21.06.2012, 13:10   #2
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

Код:
#DataTable tb2;
        string id;
        public Form2(string select)
        {
            InitializeComponent();
            id = select;
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            //treeView1.Visible=true;
            treeView1.Nodes.Clear();
            string conectionstring = @"Data Source=database1.sdf";
            SqlCeConnection Zap=new SqlCeConnection(conectionstring);

            string com = "SELECT * FROM Tab2 WHERE ID IN ("+id+")";
            SqlCeCommand cmd = new SqlCeCommand(com, Zap);
            //cmd.Connection = Zap;
            SqlCeDataAdapter adp=new SqlCeDataAdapter(cmd);

            DataTable tb1=new DataTable();

            Zap.Open();
            adp.Fill(tb1);
            Zap.Close();
            
            foreach (DataRow r in tb1.Rows)
            {
                treeView1.Nodes.Add(r["Vopros"].ToString());
            }

Последний раз редактировалось Serge_Bliznykov; 21.06.2012 в 13:22.
kronadenis вне форума Ответить с цитированием
Старый 21.06.2012, 13:10   #3
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

Забыл сам вывод


Код:
#DataTable tb2;
        string id;
        public Form2(string select)
        {
            InitializeComponent();
            id = select;
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            //treeView1.Visible=true;
            treeView1.Nodes.Clear();
            string conectionstring = @"Data Source=database1.sdf";
            SqlCeConnection Zap=new SqlCeConnection(conectionstring);

            string com = "SELECT * FROM Tab2 WHERE ID IN ("+id+")";
            SqlCeCommand cmd = new SqlCeCommand(com, Zap);
            //cmd.Connection = Zap;
            SqlCeDataAdapter adp=new SqlCeDataAdapter(cmd);

            DataTable tb1=new DataTable();

            Zap.Open();
            adp.Fill(tb1);
            Zap.Close();
            
            foreach (DataRow r in tb1.Rows)
            {
                treeView1.Nodes.Add(r["Vopros"].ToString());
            }



___________
ВНИМАНИЕ!
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.06.2012 в 13:23.
kronadenis вне форума Ответить с цитированием
Старый 21.06.2012, 15:38   #4
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

Неужели нет идей по формированию цикла по выводу? Ни у кого?
kronadenis вне форума Ответить с цитированием
Старый 21.06.2012, 18:02   #5
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Код:
string com = "SELECT * FROM Tab2 WHERE ID IN ("+id+") order by Ochered"
отсортируйте по Ochered или что Вы хотите, лично мне вопрос не очень понятен..
Reskov вне форума Ответить с цитированием
Старый 22.06.2012, 09:54   #6
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

Суть вопроса состоит в том, что бы вывод осуществлялся в порядке указанном в столбце Ochered, а не по возрастанию ID.

При применении string com = "SELECT * FROM Tab2 WHERE ID IN ("+ id +") order by tab2.ochered";
выдает ошибку: Недопустимое имя столбца. [ Node name (if any) = tab2,Column name = ochered ]
kronadenis вне форума Ответить с цитированием
Старый 22.06.2012, 11:15   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

похоже, что НЕТ в таблице Tab2 поля ochered!

зайдите через ЛЮБОЙ менеджер СУБД и покажите нам структуру таблицы Tab2.


Добавлено
а. ну и правильно.
Вы же сами говорите:
Цитата:
а хотелось бы, что бы вывод осуществлялся в порядке указанном в поле Ochered таблицы 1, к примеру 5,3,1,2,4.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.06.2012, 11:32   #8
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

tab1: ID NameP Ochered


Tab2: ID Vopros Pom Otvet
kronadenis вне форума Ответить с цитированием
Старый 22.06.2012, 11:53   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, абсолютно не понимаю, что именно вы хотите получить,
но попробуйте так:
Код:
SELECT Tab2.* FROM Tab2, tab1 
 WHERE Tab2.ID IN ("+ id +") and
   Tab2.ID = tab1.ID
order by tab1.ochered
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2012, 12:40   #10
kronadenis
 
Регистрация: 21.06.2012
Сообщений: 8
По умолчанию

Решено!
Вот такой вот запросик вылез:

Код:
private void Form2_Load(object sender, EventArgs e)
        {
            SqlCeConnection Zap = new SqlCeConnection(@"Data Source=database1.sdf");
            Zap.Open();

            SqlCeCommand cmd = new SqlCeCommand();
            cmd.Connection = Zap;

            SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);
            DataTable tb1 = new DataTable();

            treeView1.Nodes.Clear();

            string[] arr = id.Split(',');

            for (int i = 0; i < arr.Length; i++)
            {
                cmd.CommandText = "SELECT * FROM Tab2 WHERE ID=" + arr[i];
                adp.Fill(tb1);

                treeView1.Nodes.Add(tb1.Rows[i]["Vopros"].ToString());
            }
            Zap.Close();
        }
Всем спасибо за участие.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это не знак "решёточки", это КНОПОЧКА с "решёточкой" #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.06.2012 в 13:13.
kronadenis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать по порядку Ogeris Microsoft Office Excel 5 16.05.2012 17:26
Печать по порядку - 2 Ogeris Microsoft Office Excel 6 16.05.2012 13:28
Вывод строк по порядку повторяющегося признака alexsampler Microsoft Office Excel 3 05.04.2012 17:38
Внесение данных по порядку Dog_DinGo Microsoft Office Excel 2 25.03.2011 20:03
Объединение нескольких массивов по порядку. nec117 Общие вопросы C/C++ 4 16.05.2009 17:32