powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataView и кодирование руками и настройка DataGrid
16 сообщений из 16, страница 1 из 1
Про DataView и кодирование руками и настройка DataGrid
    #32543838
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу недавно - сильно не пинайте :)
Код: plaintext
1.
2.
3.
4.
5.
CurrencyManager currencyManager1 = (CurrencyManager)this.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember];
		DataView dataView1  = (DataView)currencyManager1.List;
		dataView1.AllowNew = false; 
		dataView1.AllowDelete = false;
		dataView1.AllowEdit = false;
Это кусок работает нормально, но разве нельзя боросить DataView на форму назначить ему DataSet и т.д сделал, однако не работает :)
Подскажите как правильно ? Или только так как выше ?
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32543875
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так и так правильно.

Только очевидно у вас не хватает
Код: plaintext
1.
myDataGrid.DataSource = myDataView;  // где myDataView - этот тот DataView который вы "кинули" на форму

Скорее всего у вас сейчас подобное:
Код: plaintext
1.
2.
myDataGrid.DataSource = myDataSet;
myDataGrid.DataMember = "myTable";
что равнозначно:
Код: plaintext
1.
myDataGrid.DataSource = myDataSet.Tables["myTable"].DefaultView;

Видите используются два разных DataView: myDataView и DefaultView.
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32543898
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa
Большое спасибо, получилось, однако после Delphi(Builder-а) тяжко :)
Если можно, еще вопрос ( и дальше сам буду копать )
при генерации DataSet визард сделал

sqlSelectCommand1
sqlInsertCommand1
sqlUpdateCommand1
sqlDeleteCommand1

Посмотел но непонятно как их юзать :(
- как задать парметры например @CODE ?
- какой метод использовать ?
- и т.д

Если есть киньте линк на пример.

Еще раз спасибо.
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32543938
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При использование DataAdapter и DataSet необходимости вручную задавать параметры нет, так как при создании параметра уже осуществляется необходимая привязка (сопоставление названий параметров с названиями столбцов) . И DataAdapter при Fill и Update таким образом знает какие значения необходимо подставить.

Вручную задать параметры можно например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
SqlCommand cmd = new SqlCommand("myStoredProc", myConnectionObject);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter myParam = cmd.Parameters.Add("@my_date", SqlDbType.DateTime); 
myParam.Direction = System.Data.ParameterDirection.Input;  // По умолчанию всегда Input но правила хорошего тона задавать Direction явно.
myParam.Value = System.DateTime.Now(); // Присваем параметру текущее дата, время
//cmd.Parameters["@my_date"].Value = System.DateTime.Now(); // Добраться до параметра @my_date можно и через коллекцию Parameters нашего Command.
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544108
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa
Вот еще ламерский вопрос...сорри.

Хочу получить текущее значение определенного поля в DataSet т.е то на что указывает текущая строка грида. Не могу понять...пишу
this.dataSet1.Tables["TD_T_BP"].Columns["ID"] а где свойство Value или как там его :)
Или как вообще это по уму должно делаться ?

Спасибо.
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544320
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот получил, работает.
int lID = (int)this.dataGrid1[this.dataGrid1.CurrentRowIndex,0];
Тока хочется по красивее...
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544376
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО Красивее через CurrencyManager и DataRowView :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
this.dataGrid1.DataSource = mydataSet;
this.dataGrid1.DataMember = "mytable";
CurrencyManager crm =  (CurrencyManager)this.BindingContext[this.dataGrid1.DataSource, "mytable"];
DataView dv = (DataView) crm.List;
DataRow row = dv[crm.Position].Row;  // А так мы узнали текущий Position и через него вернули строку используя DataRowView
Console.WriteLine(row["ColumnId"].ToString()); // Значение в столбце ColumnId
row.Delete(); // А так например вы удалите текущую сроку 

P.S. Способов несколько... Используя NET вам придется полюбить (да и полюбите) CurrencyManager и вообще сам механизм DataBindings. (Delphi и другие отдыхают)
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544488
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо :)
Тока
Код: plaintext
1.
2.
3.
4.
...
row.Delete(); 
row.AcceptChanges();
...
Не работает :(

Работает вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
this.sqlDeleteCommand1.Parameters["@Original_ID"].Value = lID;
this.sqlDeleteCommand1.Connection.Open();
this.sqlDeleteCommand1.ExecuteNonQuery();
this.sqlDeleteCommand1.Connection.Close();
this.dataSet1.Clear();
this.sqlDataAdapter1.Fill(this.dataSet1 );		
...

Еще раз спасибо.
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544504
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>row.Delete();
>row.AcceptChanges();
>Не работает :(

Хмм не работает!, это смотря что вы подразумеваете под AcceptChanges(), судя по коду ниже, это нето для чего AcceptChanges создан.

Если хотите внести изменения в БД из DataSet, то используйте Update(myDataSet) (Update сам смекнет что для удаленной записи надо использовать DeleteCommand, а для измененной UpdateCommand and etc) , а после вызывайте AcceptChanges() - для того чтобы закоммитить изменения не в БД !!!!!! а в DataSet
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32544538
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасиб!
С меня пиво!!!
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545783
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa
Рискну еще спросить...

Не могу понять никак чего вот здест не правильно..код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
CurrencyManager crm =  (CurrencyManager)this.BindingContext[dataGridTD_T_LIST.DataSource, dataGridTD_T_LIST.DataMember];
DataView dv = (DataView) crm.List;
dv.AddNew();
DataRow row = dv[crm.Position].Row;
row["CPROBLEM"] = "Не работает выписка с ЛС ПС";
row["DPROBLEM"] = System.DateTime.Now.Date;
row["BDONE"] =  0 ;
//this.sqlDataAdapterTD_T_LIST.Update(this.dataSetTD_T_LIST);
//this.dataSetTD_T_LIST.AcceptChanges();	
...
В грид добовляется, но в базу есно не пишется. Если я раскоментирую - то и в грид не пишется и в базу...

Подскажите как правильно, плиз...
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545836
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую навскидку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CurrencyManager crm =  (CurrencyManager)this.BindingContext[dataGridTD_T_LIST.DataSource, dataGridTD_T_LIST.DataMember];
DataView dv = (DataView) crm.List;
dv.AddNew();
DataRow row = dv[crm.Position].Row;
row["CPROBLEM"] = "Не работает выписка с ЛС ПС";
row["DPROBLEM"] = System.DateTime.Now.Date;
row["BDONE"] =  0 ;
row.EndEdit(); // Добавьте эту строчку
//this.sqlDataAdapterTD_T_LIST.Update(this.dataSetTD_T_LIST);
//this.dataSetTD_T_LIST.AcceptChanges();
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545872
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa
Не помогает :)
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545887
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa
Не помогает :)
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545901
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не то не обратил внимания что у вас Row. Попробуй так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CurrencyManager crm =  (CurrencyManager)this.BindingContext[dataGridTD_T_LIST.DataSource, dataGridTD_T_LIST.DataMember];
DataView dv = (DataView) crm.List;
DataRowView row = dv.AddNew();  // Изменения здесь
//dv.AddNew(); 
//DataRow row = dv[crm.Position].Row;
row["CPROBLEM"] = "Не работает выписка с ЛС ПС";
row["DPROBLEM"] = System.DateTime.Now.Date;
row["BDONE"] =  0 ;
row.EndEdit(); // Добавьте эту строчку
//this.sqlDataAdapterTD_T_LIST.Update(this.dataSetTD_T_LIST);
//this.dataSetTD_T_LIST.AcceptChanges();
...
Рейтинг: 0 / 0
Про DataView и кодирование руками и настройка DataGrid
    #32545984
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАCИБО. Работает.
С меня много пива!!! :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataView и кодирование руками и настройка DataGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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