Thread View: alt.pl.comp.lang.csharp
3 messages
3 total messages
Started by Depesz
Tue, 30 Mar 2004 17:15
Problem z Data Form Wizardem i dodatkowym DataGridem
Author: Depesz
Date: Tue, 30 Mar 2004 17:15
Date: Tue, 30 Mar 2004 17:15
85 lines
3039 bytes
3039 bytes
Chcialem stworzyc sobie prosty program do przegladania bazy danych przy
pomocy Data Form Wizarda. W kreatorze tego Data Form Wizarda zaznaczylem
opcje Single Record in Invidual Control. Program wygenerowal forme, po
kompilacji wszystko ladnie dziala.
Schodzy zaczely sie wtedy, gdy dodalem do formy kontrolke DataGrid.
Ustawilem powiazanie kontrolki z danymi tak jak nalezy. Wlasciwosc ReadOnly
DataGrida ustawilen na True. Problem pojawil sie w momencie gdy proboje
dodac do bazy nowy wpis. Zaznaczam iz problemu nie bylo, gdy nie bylo na
formie DataGrida.
Kod wygenerowany przez Data Form Wizarda dla przycisku Add wyglada
nastepujaco:
private void btnAdd_Click(object sender, System.EventArgs e)
{
try
{
// Clear out the current edits
this.BindingContext[objkategorieDataSet,"Kategoria"].EndCurrentEdit();
this.BindingContext[objkategorieDataSet,"Kategoria"].AddNew();
}
catch (System.Exception eEndEdit)
{
System.Windows.Forms.MessageBox.Show(eEndEdit.Message);
}
this.objkategorieDataSet_PositionChanged();
}
Gdy proboje przejsc do wygenerowanego przez Data Form Wizarda pola
tekstowego, w ktorym chce wpisac dane do nowego rekordu w tabeli, pojawia
sie czasami komunikat "Colum NazwaKategori does not allow nulls. Do you want
to correct the value?" Dzieje sie tak gdy przed nacisnieciem przycisku Add
aktywna kontrolka na mojej formie byl DataGrid.
Z kolei gdy DataGrid nie byl aktywna kontrolka, w momencie dodania nowych
danych do bazy tj po nacisnieciu przycisku Update, w DataGridzie pojawiaja
sie dwa wiersze zawierajace nowy (ten sam) wpis.
Kod wygenerowany przez Data Form Wizarda dla przycisku Update wyglada
nastepujaco:
private void btnUpdate_Click(object sender, System.EventArgs e)
{
try
{
// Attempt to update the datasource.
this.UpdateDataSet();
}
catch (System.Exception eUpdate)
{
// Add your error handling code here.
// Display error message, if any.
System.Windows.Forms.MessageBox.Show(eUpdate.Message);
}
this.objkategorieDataSet_PositionChanged();
}
Wydaje mi sie, ze problem jest zwiazany z BindingContextem, ale nie mam
pojecia jak to poprawic.
Re: Problem z Data Form Wizardem i dodatkowym DataGridem
Author: Depesz
Date: Tue, 30 Mar 2004 23:11
Date: Tue, 30 Mar 2004 23:11
29 lines
2363 bytes
2363 bytes
Troche poszukalem w sieci na temat BindingContextu i pobawilem sie z kodem:
this.editNazwaKategorii.DataBindings.Add(new
System.Windows.Forms.Binding("Text", this.objkategorieDataSet,
"Kategoria.NazwaKategorii"));
this.dataGrid1.DataMember = "";
this.dataGrid1.DataSource = this.objkategorieDataSet.Kategoria;
Jezeli zbinduje wygenerowany przez Data Form Wizarda EditBox
"editNazwaKategorii" i dodany przeze mnie DataGrid "dataGrid1"do tego samego
CurrencyManagera i DataView to opisane powyzej problemy nie wystepuja, ale
wtedy wybor jakiegos rekordu przy uzyciu kontrolek wygenerowanych przez Data
Form Wizarda (MoveFirst, MoveNext, MovePrevious, MoveLast) nie powoduje
wyboru (podswietlenia) tego samego wiersza w dodanym DataGridzie.
this.editNazwaKategorii.DataBindings.Add(new
System.Windows.Forms.Binding("Text", this.objkategorieDataSet,
"Kategoria.NazwaKategorii"));
this.dataGrid1.DataMember = "Kategoria";
this.dataGrid1.DataSource = this.objkategorieDataSet;
Przy takim ustawieniu wystepuja opisane wyzej problemy, ale za to uzycie
kontrolek MoveFirst, MoveNext, MovePrevious, MoveLast powoduje jednoczesne
zaznaczenie odpowiedniego wiersza w DataGridzie.
Co musze zrobic, aby poruszanie sie po rekordach przy pomocy kontrolek
MoveFirst, MoveNext, MovePrevious, MoveLast powodowalo jednoczesne
zaznaczenie odpowiedniego wiersza w DataGridzie i nie wystepowaly problemy
opisane we wczesniejszej wiadomosci.
Re: Problem z Data Form Wizardem i dodatkowym DataGridem
Author: Depesz
Date: Thu, 01 Apr 2004 14:32
Date: Thu, 01 Apr 2004 14:32
13 lines
1335 bytes
1335 bytes
> private void btnAdd_Click(object sender, System.EventArgs e)
> {
> try
> {
> // Clear out the current edits
> this.BindingContext[objkategorieDataSet,"Kategoria"].EndCurrentEdit();
^^^^^^^^^^^^^
Wydaje mi sie, ze tutaj tkwi problem, poniewaz gdy aktywna kontrolka jest
Data Grid i klikam przycisk "Add", a nastepnie proboje przejsc do Edit Boxa,
pojawia sie komunikat iz proboje wstawic do Data Setu wartos null.
Moze ktos wie jak to poprawic?
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads