Hallo,
Ik ben bezig met een project waarin een server based database wordt gebruikt, tot nu heb ik alleen nog maar functies nodig gehad waarin informatie uit de database werd gehaald.
Echter loop ik nu tegen het probleem hoe krijg ik veranderde data nou terug in de database (Merge?)
Bijvoorbeeld:
Bij een formload wordt de volgende actie gedaan:
Waarin een String wordt meegestuurd vanuit een andere Form waardoor er een specifieke gegevens worden opgehaald. (Ik kom uit een datagridview en ik heb elke keer maar 1 specifiek record nodig.
Dat lukt helemaal goed dus dat is het probleem ook niet.
Maar stel, Het record heeft een andere calibratie datum gekregen ipv 2010 is het nu 2011 geworden, dan wil ik dat kunnen opslaan richting de database.
Het volgende stukje werkt niet:
Wat doe ik fout, moet ik specifiek alle tekst invoer velden gaan opgeven en alle datum boxen?
Moet ik deze dan sturen naar een Datatable en moet ik die dan mergen met de huidige database?
Ik zie door de bomen het bos niet goed meer en volgens mij zie ik wat grote dingen compleet over het hoofd.
De volgende links heb ik wel gevonden maar veel soep kan ik er (nog) niet van maken.
http://msdn.microsoft.com/en-us/library/5dxfaha8.aspx
http://msdn.microsoft.com/en-us/library/bb386870.aspx
Ps.
Ik gebruik Visual Studio Ultimate 2010
De data wordt gebind met een BindingSource en en TableAdapter
Ps2
Willen jullie alsjeblieft geen big deal maken van het feit dat er geen LINQ of een ander soort binding is gebruikt. Deze is voor mij het prettigst werken en de database bevat te weinig records om snelheid verlies te merken.
Ik ben bezig met een project waarin een server based database wordt gebruikt, tot nu heb ik alleen nog maar functies nodig gehad waarin informatie uit de database werd gehaald.
Echter loop ik nu tegen het probleem hoe krijg ik veranderde data nou terug in de database (Merge?)
Bijvoorbeeld:
Bij een formload wordt de volgende actie gedaan:
C#:
1
2
3
4
5
6
| // Hier wordt er een connectie gemaakt tussen Database en het programma. SqlConnection fillForm = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CabSofDataBase.mdf;Integrated Security=True;User Instance=True"); //Hier wordt er een sql query naar de database gestuurd. SqlCommand cmd = new SqlCommand("SELECT * FROM devicestable WHERE TiatID = '" + TiatID + "'", fillForm); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd); sqlDataAdapter.Fill(this.cabSofDataBaseDataSet.devicestable); |
Waarin een String wordt meegestuurd vanuit een andere Form waardoor er een specifieke gegevens worden opgehaald. (Ik kom uit een datagridview en ik heb elke keer maar 1 specifiek record nodig.
Dat lukt helemaal goed dus dat is het probleem ook niet.
Maar stel, Het record heeft een andere calibratie datum gekregen ipv 2010 is het nu 2011 geworden, dan wil ik dat kunnen opslaan richting de database.
Het volgende stukje werkt niet:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| try { if (MessageBox.Show("Weet u zeker dat u deze veranderingen wilt opslaan?", "Pas op!", MessageBoxButtons.OKCancel) == DialogResult.OK) { cabSofDataBaseDataSet.GetChanges(DataRowState.Modified); devicestableTableAdapter.Update(cabSofDataBaseDataSet); } else { MessageBox.Show("De veranderingen zijn niet opgeslagen!"); } } catch { MessageBox.Show("The changes can't be saved please try again."); } |
Wat doe ik fout, moet ik specifiek alle tekst invoer velden gaan opgeven en alle datum boxen?
Moet ik deze dan sturen naar een Datatable en moet ik die dan mergen met de huidige database?
Ik zie door de bomen het bos niet goed meer en volgens mij zie ik wat grote dingen compleet over het hoofd.
De volgende links heb ik wel gevonden maar veel soep kan ik er (nog) niet van maken.
http://msdn.microsoft.com/en-us/library/5dxfaha8.aspx
http://msdn.microsoft.com/en-us/library/bb386870.aspx
Ps.
Ik gebruik Visual Studio Ultimate 2010
De data wordt gebind met een BindingSource en en TableAdapter
Ps2
Willen jullie alsjeblieft geen big deal maken van het feit dat er geen LINQ of een ander soort binding is gebruikt. Deze is voor mij het prettigst werken en de database bevat te weinig records om snelheid verlies te merken.