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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос данных 
:(
    Опции темы
Finkel
Дата 14.5.2004, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть две формы .. на одной обрабатывается SQL запрос , а результат в виде таблицы нужно перенести на другую форму ... Как это можно сделать?
PM MAIL   Вверх
Kurt
Дата 14.5.2004, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Цитата
а результат в виде таблицы нужно перенести на другую форму

Хотелось бы уточнить: тебе нужно, допустим, загрузить данные, а после кликнуть по кнопке, к-я выдаст новую форму с заполненным DataGrid? Так?


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Kurt
Дата 15.5.2004, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Понимаешь, здесь очень много вариантов решения, в зависимости от задачи,можно применить тот или иной способ.
Какие варианты я могу предложить, так, навскидку:
1) Перед выводом формы с таблицей, установить у нее св-во DataSource с помощью спец. функции или определив св-во.
Поясню.
Допустим, ты по кнопке показываешь вторую форму с результатом. Тогда, сильно упрощая, можно сделать так:

C#.NET
Код

Form2 frm = new Form2();
frm.DataGrid1.DataSource = DataSetFromFirstFrom;
frm.ShowDialog(this);


VB.NET
Код

Dim frm As Form2 = New Form2
frm.DataGrid1.DataSource = DataSetFromFirstFrom;
frm.ShowDialog(Me)


Managed C++.NET
Код

Form3 * frm = new Form2();
frm->DataGrid1->DataSource = DataSetFromFirstFrom;
frm->ShowDialog(this);


VJ#.NET
Код

Form2 frm = new Form2();
frm.DataGrid1.DataSource.set_DataSource(DataSetFromFirstFrom);
frm.ShowDialog(this);


Понятно, что тут DataGrid должен быть объявлен как public, что не есть гуд, поэтому, можно, например, не напрямик присваивать, а определить в Form2 специальную функцию для этого или через property. Но эт уже детали..

2) В Form1 определить фунцию типа GetData(), к-я будет возвращать тебе нужный DataSet. А потом в Form2 просто вызываешь эту ф-цию (у тебя ж передается ссылка на окно-родитель) при создании класса, например.

3) Можно все это оформить через события - генерировать событие в Form1, а обработчик вешать в Form2. Но это уже, ИМХО, явно перебор для такой задачи.

Это как бы самые простые способы. Если тебе такое не подходит, можем подумать еще..

P.S. События уже не раз обсуждались на форуме. Вот, допустим, одна из последних ссылок: http://forum.vingrad.ru/index.php?showtopic=22488


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Finkel
Дата 15.5.2004, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



если я напишу так можно
Код

//мы находимся во второй форме,
//а frm - это родительская форма
frm.Datagrid1.DataSource=DataFromForm2;
// ...


Т.е. что то вроде стиля Делфи ...???


PM MAIL   Вверх
Kurt
Дата 15.5.2004, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Да.
frm - это ССЫЛКА на родительскую форму (если ты, конечно, не будешь пытаться создать копию).
Поэтому, ты можешь обращаться к первой форме и к ее данным, НО только (!) к открытым (public) членам. Идеально - сделать доступ через специальные функции или property.
Напрямую доступ нежелателен - вполне обосновано считается плохим стилем программирования..
Добавлено @ 23:58
Хм.. Или ты не про то?.. hmmm.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Finkel
Дата 16.5.2004, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Про то ... просто пытался так делать не получалось ...
Добавлено @ 23:05
под функцией нужно понимать метод? т.е. в классе родительской формы нужно определить метод SetData () ?
PM MAIL   Вверх
stron
Дата 16.5.2004, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

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



Finkel
покажи исходник


--------------------
подписи нет
PM ICQ   Вверх
Kurt
Дата 17.5.2004, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Цитата
под функцией нужно понимать метод? т.е. в классе родительской формы нужно определить метод SetData () ?

Ну да. Повторюсь, как один из вариантов.
А вообще, согласен с stron - покажи исходник. wink.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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