powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение данных
25 сообщений из 27, страница 1 из 2
Получение данных
    #32534961
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Help!!!

Нужно получить данные датасета, который находится в главной форме из дочерней формы.
Пока только осваиваю C# поэтому доконца не врубаюсь.
Главная форма создаёться таким макаром:
Код: plaintext
1.
Application.Run(new cfmMain());

Нужно датасеты делать статиками?
Где в C# нужно хранить все датасеты?
Например в Delphi в DataModule'e.
...
Рейтинг: 0 / 0
Получение данных
    #32535031
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, намекните где прочитать? :)
...
Рейтинг: 0 / 0
Получение данных
    #32535277
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще то лучше хранить там где используете ...
но в принципе можно и в главной форме ... можно и не статиками,
можно сдделать их пабликами а инициализировать например Лоад,
а можно дать к ним доступ через проперитес ....
дело вкуса ... :)
Я например даталэер делаю вообще в отдельном модуле ...
(в котором есть методы ... например bool getCientsAsDataSet(DataSet ds) )
а в нужной форме его вызываю
DataSet ds=new DataSet();
if(getClientAsDataSet(ds)) ....
...
Рейтинг: 0 / 0
Получение данных
    #32535345
Фотография B0rG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Start -> Programs -> Microsoft .NET Framework -> Samples and Quick Start Tutorials.

На микрософте еще валяется занятная штука - 101 VB.NET Samples - там много занятных вещей, правда для васика.

Хранить можно в public в main форме, доставать, по-моему, через .Parent.

Я бы все данные сделал бы через синглетон, так прикольнее :-)


Cheers
Pete
...
Рейтинг: 0 / 0
Получение данных
    #32535572
\/lad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделай датасет паблик и будет тебе счастье
...
Рейтинг: 0 / 0
Получение данных
    #32535609
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\/lad, и что дальше?

B0rG, через Parent не выходит.

olk, думаю пользоватся твоим способом.


Может у есть личше варианты?
...
Рейтинг: 0 / 0
Получение данных
    #32535611
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может есть личше варианты? (видимо пора пиво пить :) рабочий то день уже давно закончился) :)
...
Рейтинг: 0 / 0
Получение данных
    #32535727
\/lad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
namespace
{
public class cfmMain : System.Windows.Forms.Form
{
public DataSet ds;
FrmB29 B29;
private cfmMain()
{
B29 = new FrmB29(this);
}

/////////////////////////////////////////////////////////////////
//// остальные переменные свойства и методы /////////
////////////////////////////////////////////////////////////////
}

public class FrmB29 : System.Windows.Forms.Form
{
private cfmMain Owner;

public FrmB29(cfmMain owner)
{
Owner = owner;
}
public WorkWithDataSet()
{
Owner.ds.ReadXml(@"c:\data.xml");
}
/////////////////////////////////////////////////////////////////
//// остальные переменные свойства и методы /////////
/////////////////////////////////////////////////////////////////
}
}
...
Рейтинг: 0 / 0
Получение данных
    #32536088
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\/lad, а как сделать так, что бы запрос не переоткрывать?
...
Рейтинг: 0 / 0
Получение данных
    #32536146
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
		public cfmAddUser(cfmMain FormOwner)
		{
			InitializeComponent();
			formOwner = FormOwner;
		}

		private void bt_New_Click(object sender, System.EventArgs e)
		{

			formOwner.da_dUser.Fill(cDataSet1);
// КАТИТ!!!  НО ЗАПРОС ПЕРЕОТКРЫВАЕТСЯ
		}

		private void cfmAddUser_Load(object sender, System.EventArgs e)
		{
			cDataSet1=formOwner.ds_dUser;		
			//НЕ КАТИТ!!!! ??? :(
		}
...
Рейтинг: 0 / 0
Получение данных
    #32536158
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>formOwner.da_dUser.Fill(cDataSet1);
// КАТИТ!!! НО ЗАПРОС ПЕРЕОТКРЫВАЕТСЯ

Может я не в тему, просто не врубился что у вас катит и не катит:

Если соединение закрыто перед использованием Fill то метод Fill соединение открывает а потом закрывает

Если соединение открыто перед использованием Fill то метод Fill соединение оставляет открытым.

Это можно использовать для повышения производительности при нескольких Fill подряд.
...
Рейтинг: 0 / 0
Получение данных
    #32536210
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть основная форма в ней открыт запрос.
Теперь мне нужно редактировать этот запрос из второй формы.
У меня получается обращаться к получением данных методом Fill.
А можно обращаться к уже открывшемуся запросу который находится в основной форме?
...
Рейтинг: 0 / 0
Получение данных
    #32536226
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Есть основная форма в ней открыт запрос.
Теперь мне нужно редактировать этот запрос из второй формы.
У меня получается обращаться к получением данных методом Fill.
А можно обращаться к уже открывшемуся запросу который находится в основной форме?

Что значит открыт запрос - это подразумевается открыто соединение? И почему оно открыто?

Привидите свой код как из основной так и из второй формы.
...
Рейтинг: 0 / 0
Получение данных
    #32536315
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fill просто берёт данные?
Если да, тогда мне нужно к ним получить доступ и связать с textedit'ом
...
Рейтинг: 0 / 0
Получение данных
    #32536316
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я тоже чего-то не понял, а что так нельзя? :

В форме1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
private DataSet DS;
.
.
Делаем с датасетом что надо.
.
.
public DataSet getDataSet()
{
	return DS;
}
//открываем дочернюю форму
private void button1_Click(object sender, System.EventArgs e)
{
	Form2 f=new Form2();
	f.ShowDialog(this);
}

В форме2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
private void button1_Click(object sender, System.EventArgs e)
{
	DataSet DS2;
	DS2=((Form1)Owner).getDataSet();
            // или сразу так
            DataAdapter2.Fill(((Form1)Owner).getDataSet());

}
Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
Получение данных
    #32536331
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, так я не хочу, что бы запрос два раза одно и тоже из сервера брал.
Зачем если уже один раз взял. Это ж замедляет работу.
...
Рейтинг: 0 / 0
Получение данных
    #32536349
\/lad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
formOwner.da_dUser.Fill(cDataSet1,"user");
cDataSet1=formOwner.ds_dUser;
foreach(DataRow dr in cDataSet1.Tables["user"].Rows)
{
Name.Add(dr["Name"]);
}
...
Рейтинг: 0 / 0
Получение данных
    #32536359
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, так я не хочу, что бы запрос два раза одно и тоже из сервера брал.
Зачем если уже один раз взял. Это ж замедляет работу.


Это в мой адрес было сказано?
Тогда я вообще ничего не понимаю.

Вы датасет из формы1 получили? Можете его присвоить датасету2 в форме2 и с ним делайте что хотите пока не надоест или актуальные данные не понадобятся, тогда снова к серверу.

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
Получение данных
    #32536396
\/lad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2>M234

ну можно и так, хотя компакт фреймворк этого не поддерживает :))

Supported by the .NET Compact Framework.

[Visual Basic] Overloads Public Function ShowDialog() As DialogResult
[C#] public DialogResult ShowDialog();
[C++] public: DialogResult ShowDialog();
[JScript] public function ShowDialog() : DialogResult;

Shows the form as a modal dialog with the specified owner.

[Visual Basic] Overloads Public Function ShowDialog(IWin32Window) As DialogResult
[C#] public DialogResult ShowDialog(IWin32Window);
[C++] public: DialogResult ShowDialog(IWin32Window*);
[JScript] public function ShowDialog(IWin32Window) : DialogResult;
...
Рейтинг: 0 / 0
Получение данных
    #32536475
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Fill просто берёт данные?
>Если да, тогда мне нужно к ним получить доступ и связать с textedit'ом

>Ну, так я не хочу, что бы запрос два раза одно и тоже из сервера брал.
>Зачем если уже один раз взял. Это ж замедляет работу.

Вопросы некорректные.

Может поможет вам разобраться этот утрированный пример работы с DataSet:
1) Метод Fill - заполняет указанный в параметрах DataSet.
Заполнили DataSet, закрыли соединение.
2) Теперь DataSet находиться у нас, можете делать с ним все что угодно, сам DataSet никогда не обращается к базе данных и не имеет методов для этого. DataSet - отсоединенный независимый набор данных Он может повторять вашу структуру БД, а может совсем не повторять ее.
3) На DataSet можете насоздавать необходимое количество ссылок там где это необхоимо в любых формах приложения. Количество используемых DataSet не регламентируется, можно хоть для каждой таблицы "завести" отдельный DataSet, но при этом теряется преимущество - под названием DataRelation.
4) После того как отработали DataSet и пришло время внести изменения в БД то:
Код: plaintext
1.
2.
myDataAdapter.Update(myDataSet);
myDataSet.AcceptChanges();
...
Рейтинг: 0 / 0
Получение данных
    #32537062
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос на время снят, всем спасибо.
...
Рейтинг: 0 / 0
Получение данных
    #32537236
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибочка!
В форме2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
private void button1_Click(object sender, System.EventArgs e)
{
	DataSet DS2;
	DS2=((Form1)Owner).getDataSet();
            // или сразу так
            DataAdapter2.Update(((Form1)Owner).getDataSet());
           //Update я хотел написать, зачем заполнять уже заполненный датасет
}




Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
Получение данных
    #32537863
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ошибочка


Не заметил :-(, так что этот вопрос корректный:
>Ну, так я не хочу, что бы запрос два раза одно и тоже из сервера брал.
>Зачем если уже один раз взял. Это ж замедляет работу.

Остальное без изменений :-)
...
Рейтинг: 0 / 0
Получение данных
    #32543278
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Im back со своими дурацкими вопросами.


А откуда DataAdapter и счем он связан ?
...
Рейтинг: 0 / 0
Получение данных
    #32543394
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, кинте примерчик на мыло. mydim@mail.ru plz
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]