Nog maar eens een .NET/C# probleem van mijnentwege. (Het 4de deze week?)
Deze keer heeft het, zoals je al uit de topic-title kunt uitmaken te maken met connections e.d., kortom, database perikelen.
Het probleem is als volgt:
Ik heb een form waarop je klantgegevens kunt ingeven. Deze gegevens moeten dan dmv een druk op de 'Applybutton' naar de databank weggeschreven worden.
Op die form staan een aantal TextBoxen (naam, adres, ...) en ook een ComboBox waar ik een gemeente uit kan selecteren.
Als ik nu m'n gegevens wil wegschrijven naar de databank krijg ik echter volgende error:
Mijn eerste idee was dat het te maken had met het inladen van m'n combobox. Daar moeten nogal wat gegevens ingeladen worden en ik dacht dus dat hij die connectie misschien nog bezig was met daar gegevens te 'fetchen'. Ik heb m'n combobox dan maar eens niet ingeladen, maar ik kreeg dezelfde fout. Daar lag het dus al niet aan.
Vervolgens heb ik het dan maar geprobeerd om m'n connectie te sluiten en terug te openen vlak voor het saven, maar toen kreeg ik volgende foutmelding :
Wie heeft er een idee hoe het komt dat die connection-state plots 'fetching' is en hoe zou ik dit kunnen oplossen, zodat ik m'n connectie niet hoef te sluiten en opnieuw te openen. Dit zorgt toch maar voor onnodige overhead. Ik vermoed trouwens dat m'n 2de probleem (transaction object is not associated...) te maken heeft met het feit dat ik m'n connectie sluit en terug open.
Deze keer heeft het, zoals je al uit de topic-title kunt uitmaken te maken met connections e.d., kortom, database perikelen.
Het probleem is als volgt:
Ik heb een form waarop je klantgegevens kunt ingeven. Deze gegevens moeten dan dmv een druk op de 'Applybutton' naar de databank weggeschreven worden.
Op die form staan een aantal TextBoxen (naam, adres, ...) en ook een ComboBox waar ik een gemeente uit kan selecteren.
Als ik nu m'n gegevens wil wegschrijven naar de databank krijg ik echter volgende error:
Vreemd dacht ik, ik heb dan maar eens op bepaalde plaatsen wat code geschreven zodat ik een MessageBox kreeg die de status van m'n connectie toonde, en dat was iedere keer gewoon 'Open'. Van Fetching was er geen sprake.BeginTransaction requires an open and available Connection. The connection's current state is Open, Fetching.
Mijn eerste idee was dat het te maken had met het inladen van m'n combobox. Daar moeten nogal wat gegevens ingeladen worden en ik dacht dus dat hij die connectie misschien nog bezig was met daar gegevens te 'fetchen'. Ik heb m'n combobox dan maar eens niet ingeladen, maar ik kreeg dezelfde fout. Daar lag het dus al niet aan.
Vervolgens heb ik het dan maar geprobeerd om m'n connectie te sluiten en terug te openen vlak voor het saven, maar toen kreeg ik volgende foutmelding :
Dit terwijl er toch duidelijk in m'n code het volgende staat:"The transaction object is not associated with the connection object
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| private void OnApplybuttonClick (object sender, EventArgs args)
{
OleDbCommand qryPost;
OleDbTransaction tx;
qryPost = new OleDbCommand();
// Hier sluit en open ik m'n connectie om de eerste foutmelding te voorkomen
MainForm.dbStd.Close();
MainForm.dbStd.Open();
qryPost.Connection = conn;
tx = qryPost.BeginTransaction();
qryPost.Transaction = tx; // Hier wordt het transaction object toegewezen aan m'n command
// Hier komt dan het uitendelijke saven. |
Wie heeft er een idee hoe het komt dat die connection-state plots 'fetching' is en hoe zou ik dit kunnen oplossen, zodat ik m'n connectie niet hoef te sluiten en opnieuw te openen. Dit zorgt toch maar voor onnodige overhead. Ik vermoed trouwens dat m'n 2de probleem (transaction object is not associated...) te maken heeft met het feit dat ik m'n connectie sluit en terug open.
https://fgheysels.github.io/