Ergens in mijn programma zit een Datagrid, die ik @ design time aangemaakt hebt (alles in visual studio dus, met wizard en toestanden ;-)). Dit doe ik omdat ik een ADO.NET boek voor me heb liggen uit de step-by-step serie van microsoft en ik wil in grote lijnen de methodes van dat boek volgen. Helaas staat er maar weinig in het boek over de datagrid control.
Voor het laden van de grid verander ik een aantal properties:
Zoals je kunt zien is dgridWizard6Details mijn datagrid, OleDbConnection1 de verbinding, OleDbDataAdapter2 de data adapter en DsTmpDetails1 mijn dataset. Nu werkt dit BIJNA allemaal prima.
Alleen INSERT werkt niet terwijl SELECT UPDATE en DELETE wel goed werken? En zoals je ziet ik wel de parameters die niet in het grid zelf staan doorgeef?
INSERT INTO tblCalcDetails (Detail, Aantal, Prijs, Notities, Tariefcode, ProjectdeelId, SubgroepId) VALUES (?, ?, ?, ?, ?, ?, ?)
Als ik dus klaar ben met werken in mijn datagrid en hij dus een insert command moet uitvoeren voor een row gaat het mis, ik krijg dan de foutmelding:
- waar het probleem zit
- hoe ik dit moet debuggen om daar achter te komen
Hoop dat iemand me kan vertellen hoe ik erachter kan komen waar mijn probleem zit?
Voor het laden van de grid verander ik een aantal properties:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
| dgridWizard6Details.DataBindings.Clear() OleDbConnection2.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=cia;Data Source=" & sqlSource & "tmp.mdb;Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False" OleDbDataAdapter2.SelectCommand.Parameters("ProjectdeelId").Value = 1 'wizProjectdeelId OleDbDataAdapter2.SelectCommand.Parameters("SubgroepId").Value = 1 'wizSubgroepId(0, 0) OleDbDataAdapter2.InsertCommand.Parameters("ProjectdeelId").Value = 1 'wizProjectdeelId OleDbDataAdapter2.InsertCommand.Parameters("SubgroepId").Value = 1 'wizSubgroepId(0, 0) OleDbDataAdapter2.Fill(DsTmpDetails1) dgridWizard6Details.SetDataBinding(DsTmpDetails1, "") dgridWizard6Details.DataSource = DsTmpDetails1.Tables(0).DefaultView() dgridWizard6Details.CaptionText = wizSubgroep |
Zoals je kunt zien is dgridWizard6Details mijn datagrid, OleDbConnection1 de verbinding, OleDbDataAdapter2 de data adapter en DsTmpDetails1 mijn dataset. Nu werkt dit BIJNA allemaal prima.
Alleen INSERT werkt niet terwijl SELECT UPDATE en DELETE wel goed werken? En zoals je ziet ik wel de parameters die niet in het grid zelf staan doorgeef?
INSERT INTO tblCalcDetails (Detail, Aantal, Prijs, Notities, Tariefcode, ProjectdeelId, SubgroepId) VALUES (?, ?, ?, ?, ?, ?, ?)
Als ik dus klaar ben met werken in mijn datagrid en hij dus een insert command moet uitvoeren voor een row gaat het mis, ik krijg dan de foutmelding:
Als ik de SQL command uitvoer met mijn eigen functie om SQL uit te voeren werkt dat prima, dus het command dat hier uit rolt moet gewoon goed zijn. Daarom heb ik dus ook geen idee:An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
- waar het probleem zit
- hoe ik dit moet debuggen om daar achter te komen
Hoop dat iemand me kan vertellen hoe ik erachter kan komen waar mijn probleem zit?
[ Voor 11% gewijzigd door Verwijderd op 12-01-2006 11:22 ]