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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> осуществить цикл для sqlDataAdapter 
:(
    Опции темы
kizune
Дата 27.11.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте smile 

Вот такая проблема:
есть таблица

id_code   цена  серия       описание
001         100     серия_1    описание_1
001         120     серия_1    описание_1
001         130     серия_1    описание_1
002         140     серия_2    описание_2 

суть в том,чтобы выводить это в datagrid так:

серия_1
100
120
130
описание_1

серия_2
140
описание_2

подскажите пожалуйста,как это можно организовать?



Это сообщение отредактировал(а) kizune - 27.11.2007, 17:27
PM MAIL   Вверх
thomas
Дата 27.11.2007, 17:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



kizune, 
Приветствую.
Что-то немного не понятно. Как получается что при одном и том же id_code, серия_1 и  описание_1 цена РАЗНАЯ.
Можно более подробное описание базы и что нужно в итоге


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
1stain
Дата 27.11.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



А я что-то вообще нифига не вдупляю в этом наборе символов. 
Суть собственно в том, что аффтару надо бы почитать про sql, например  про group by, а лучше про нормализацию таблиц (хотя это я уже слишком много требую smile )


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
kizune
Дата 27.11.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



согласна,это малость странно.но ничего не поделаешь.
есть продукты с разной ценой,но относящиеся к одной серии и соответственно с одним описанием.просто есть такой параметр id_code

таблица1
 id    id_code   цена    серия       описание
  1     001         100     серия_1    описание_1
  2     001         120     серия_1    описание_1
  3     001         130     серия_1    описание_1
  4     002         140     серия_2    описание_2 

результат вывода я представила:
серия_1
100
120
130
описание_1

серия_2
140
описание_2

А вот как это организовать не знаю,думала может сделать как-нибудь цикл
перед загрузкой в dataset или в самом dataset...
Код

        .......
           conn.Open();      
            SqlDataAdapter myCommand = new SqlDataAdapter(strCommand, conn);        
            DataSet ds = new DataSet(); 
          
            myCommand.Fill(ds);

            myDataGrid.DataSource = ds;       
            myDataGrid.DataBind();    

PM MAIL   Вверх
thomas
Дата 27.11.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



kizune, 
Попробуй использовать в запросе на выборку GROUP BY по полю серия, как посоветовал  1stain, и посмотри что отобразит твой DGV

Это сообщение отредактировал(а) thomas - 27.11.2007, 18:06


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
kizune
Дата 27.11.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



спасибо,буду пробовать smile 
PM MAIL   Вверх
1stain
Дата 27.11.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



да-да, попробуй, и сразу возвращайся, как только GROUP BY начнет требовать какие-то там агрегирующие функции


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
thomas
Дата 28.11.2007, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



Цитата

 как только GROUP BY начнет требовать какие-то там агрегирующие функции

Что бы этого не произошло, можно например посчитать сколько вариантов цен есть в каждой серии.
Код

SELECT COUNT(*) AS всего, серия 
FROM  таблица1
GROUP BY серия

получиться 

всего    серия
 3          серия_1
  1         серия_2


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
thomas
Дата 28.11.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



kizune, 
Ночью подумал и понял, что вместо Group By надо использовать Order By по полю серия..


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
kizune
Дата 28.11.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



thomas,
ORDER BY я использую для сортировки.
наверное больше подойдет DISTINCT, чтобы исключить одинаковые названия серии и описания.
чтобы вывод был таким:
серия_1
100
120
130
описание_1

серия_2
140
описание_2

а не таким:

серия_1
100
описание_1

серия_1
120
описание_1

серия_1
130
описание_1

серия_2
140
описание_2

только вот куда бы его приткнуть... smile 

Это сообщение отредактировал(а) kizune - 28.11.2007, 12:59
PM MAIL   Вверх
1stain
Дата 28.11.2007, 14:50 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



написано для MS SQL и при условии, что серия (Line) и описание (Description) имеют одинаковые значения (хотя хоть убейте, не пойму кому может понадобиться такая схема данных)
Код

IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[CrazyTable]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[CrazyTable]

CREATE TABLE [dbo].[CrazyTable](
    [ID] [int] NULL,
    [Another_ID] [int] NULL,
    [Price] [money] NULL,
    [Line] [nchar](10) COLLATE Latin1_General_CS_AS NULL,
    [Description] [nchar](10) COLLATE Latin1_General_CS_AS NULL
) ON [PRIMARY]
insert dbo.CrazyTable values (1,1,100,'Line1', 'Desc1')
insert dbo.CrazyTable values (2,1,110,'Line1', 'Desc1')
insert dbo.CrazyTable values (3,1,120,'Line1', 'Desc1')
insert dbo.CrazyTable values (4,2,110,'Line2', 'Desc2')
insert dbo.CrazyTable values (5,2,150,'Line2', 'Desc2')

-- Вот отсюда вставляешь в функцию, возвращает @resultTable
declare CrazyTable_cursor CURSOR for ( select distinct Line from dbo.CrazyTable);
declare @resultTable  TABLE ( PriceLine nchar(10) );
declare @curr_another_Line nchar(10);
open CrazyTable_cursor;
fetch next from CrazyTable_cursor into @curr_another_Line;
while @@Fetch_status = 0
begin

insert  @resultTable  values( @curr_another_Line )

insert @resultTable
select cast(Price as nchar(10)) from dbo.CrazyTable where Line = @curr_another_Line

insert @resultTable
select distinct Description from dbo.CrazyTable where Line = @curr_another_Line

insert @resultTable values('----------')

fetch next from CrazyTable_cursor into @curr_another_Line;
end
close CrazyTable_cursor;
deallocate CrazyTable_cursor;
-- Здесь функция заканчуется и возвращаем @resultTable

select * from @resultTable


всю эту белиберду оформляешь как функцию sql и выбираешь данные из нее

Это сообщение отредактировал(а) 1stain - 28.11.2007, 16:22


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
thomas
Дата 28.11.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



 smile 

1stain, 
Могуч!
Подскажи что почитать про программирование на стороне сервера. Сижу в глубокой луже при попытках написать толковые хранимые процедуры.  smile 
А про функции вообще молчу. А что такое триггер даже и не спрашивай. 

Это сообщение отредактировал(а) thomas - 28.11.2007, 18:07


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

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


 




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


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

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