anoniem Geplaatst: 5 november 2007 Delen Geplaatst: 5 november 2007 hallo, ik zit met het volgende probleem: in vb.net gebruikte ik oledb connecties om uit een database te laden en te schrijven enz... nu ben ik in c# beginnen schrijven, maar het lukt mij niet om 1 "zin" te vertalen. dit is de code ongeveer: [code:1:fb146f16ce] OleDbDataAdapter dalogin; OleDbConnection dbconn; DataSet ds; dbconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|datadirectory|/database.mdb"); dalogin = new OleDbDataAdapter("Select * From data Where jaar='" + txtjaar.Text + "'", dbconn); ds = new DataSet(); dalogin.Fill(ds); [/code:1:fb146f16ce] daarna zou een lijn moeten komen die dus eigenlijk in de database de gegevens gaat halen en ze in een string zet, in vb.net dee ik dit zo: [code:1:fb146f16ce] public week as string week = ds.Tables("data").Rows(0).Item("week") [/code:1:fb146f16ce] maar die lijn zou ik nog willen vertalen naar c#, maar ik krijg het maar niet goed. het laatste wat ik probeerde was: [code:1:fb146f16ce] string week = ds.Tables["data"].Columns["week"]; [/code:1:fb146f16ce] maar dat wil hij niet converteren naar een string.... weten jullie soms hoe dit moet? alvast bedankt! Quote Link naar reactie
anoniem Geplaatst: 5 november 2007 Auteur Delen Geplaatst: 5 november 2007 Moet het niet gewoon zijn: [code:1:8fce33ab9e]string week = (string)ds.Tables["data"].Rows[0].Item["week"];[/code:1:8fce33ab9e] Ik ben niet helemaal zeker of de cast naar 'string' altijd goed gaat (afhankelijk van wat je in de dataset hebt staan), anders kun je het volgende nog eens proberen: [code:1:8fce33ab9e]string week = ds.Tables["data"].Rows[0].Item["week"].ToString();[/code:1:8fce33ab9e] of [code:1:8fce33ab9e]string week = ds.Tables["data"].Rows[0].Item["week"] as string;[/code:1:8fce33ab9e] In dat laatste voorbeeld kan het ook zijn dat de cast niet goed gaat, maar in plaats van dat er dan een exception opgeworpen wordt, krijgt de variabele 'week' de waarde 'null' Quote Link naar reactie
anoniem Geplaatst: 5 november 2007 Auteur Delen Geplaatst: 5 november 2007 nee, alleja:p da heb ik ook al geprobeerd, maar hij geeft als fout dat Error System.Data.DataRow' does not contain a definition for 'Item'.... ben ik iets vergeten instellen ofzo? alleja.. ik heb nog niet zo veel ervaring met c#.... ben er nog maar juist mee begonnen.... Quote Link naar reactie
anoniem Geplaatst: 6 november 2007 Auteur Delen Geplaatst: 6 november 2007 Probeer je functie eens door [url=http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx]deze convertor[/url] te halen. Als je vb.net code klopt, krijg je het c# equivalent terug. [url=http://www.icsharpcode.net/OpenSource/SD/]#Develop[/url] kan dit trouwens ook (daar is die conversietool op gebaseerd). Is nog vrije software ook :wink:. NB: het zal niet de meest optimale code genereren, maar je krijgt zo wel een idee van de richting die je in moet gaan met c# Quote Link naar reactie
anoniem Geplaatst: 6 november 2007 Auteur Delen Geplaatst: 6 november 2007 Dat je de foutmelding klopt inderdaad. Ik had even niet goed in de [url=http://msdn2.microsoft.com/en-us/library/146h6tk5.aspx]MSDN documentatie gekeken.[/url] Zo zou het wel moeten werken: [code:1:a79ad718bb]string week = ds.Tables["data"].Rows[0]["week"] as string;[/code:1:a79ad718bb] Vaak kun je bij dit soort problemen (een property of methode die niet bestaat) terug grijpen op de [=http://msdn2.microsoft.com/en-us/library/aa388745.aspx]MSDN documentatie[/url]. Daarin staat van elke .Net klasse een lijst met properties, methoden etc inclusief beschrijving vermeld. Quote Link naar reactie
anoniem Geplaatst: 7 november 2007 Auteur Delen Geplaatst: 7 november 2007 hij geeft al geen fout meer bij het debruggen... maar als ik dan zoek in de database geeft hij die fout: NullReferecteExetion was unheandled, De objectverwijzing is niet op een exemplaar van een object ingesteld. Ik zal eens kijken naar de website die u gaf. Quote Link naar reactie
anoniem Geplaatst: 8 november 2007 Auteur Delen Geplaatst: 8 november 2007 ik heb al alles geprobeerd maar het wil maar niet lukken! :oops: dit is dode waar ik het mee probeer: [code:1:dbad646339] private void laden() { OleDbDataAdapter dalogin; OleDbConnection dbconn; DataSet ds; dbconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|datadirectory|/database.mdb"); dalogin = new OleDbDataAdapter("Select * From data Where jaar='" + txtjaar.Text + "'" + "and m1='" + textBox1.Text + "'", dbconn); MessageBox.Show("Select * From data Where jaar='" + txtjaar.Text + "'" + " and m1='" + textBox1.Text + "'"); ds = new DataSet(); dalogin.Fill(ds); if (ds.Tables[0].Rows.Count == 0) { MessageBox.Show("nie gevonden"); } else { MessageBox.Show("gevonden!"); string week = ds.Tables["data"].Rows[0]["week"] as string; MessageBox.Show(week); } dbconn.Close(); } [/code:1:dbad646339] maar hij zegt altijd De objectverwijzing is niet op een exemplaar van een object ingesteld. ... Quote Link naar reactie
anoniem Geplaatst: 8 november 2007 Auteur Delen Geplaatst: 8 november 2007 [code:1:51088e174f]dbconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|datadirectory|/database.mdb");[/code:1:51088e174f]Ik heb het gevoel dat in deze regel iets niet helemaal klopt, en dan met name in het Data Source gedeelte. [quote:51088e174f="sc"]maar hij zegt altijd De objectverwijzing is niet op een exemplaar van een object ingesteld. [/quote:51088e174f]Als je door de code stept, in welke regel krijg je deze foutmelding? Quote Link naar reactie
anoniem Geplaatst: 9 november 2007 Auteur Delen Geplaatst: 9 november 2007 Voor meer informatie over de opbouw van een connectie string kun je ook [url=http://www.connectionstrings.com/]hier[/url] eens kijken Quote Link naar reactie
anoniem Geplaatst: 9 november 2007 Auteur Delen Geplaatst: 9 november 2007 Hij geeft de messagebox dat hij het gevonden heeft! dus hij vinde database... de connectionstring bleek toch te kloppen denk ik want bij de connectionstring uit die website http://www.connectionstrings.com/?carrier=access gaf hij de zelfde fout. de foutmelding geeft hij op de regel : [code:1:8361029c38]string week = ds.Tables["data"].Rows[0]["week"] as string;[/code:1:8361029c38] ik heb er een printscreen van genomen. die staat op [url]http://sander.ws-creations.be/docs/prntscrn.jpg[/url] ik zou het graag laten werken! dus alvast bedankt dat jullie mij nog willen helpen he.. sander Quote Link naar reactie
anoniem Geplaatst: 9 november 2007 Auteur Delen Geplaatst: 9 november 2007 Blijkbaar kan hij één van de gevraagde items in de database niet vinden. De makkelijkste manier om hier achter te komen is door de regel even uit te splitsen in losse statements: [code:1:cfec582ac4]DataTable tabel = ds.Tables["data"]; DataRow rij = tabel.Rows[0]; string week = rij["week"] as string;[/code:1:cfec582ac4] Voer deze code eens uit en kijk dan nog eens waar de fout zich voordoet. Quote Link naar reactie
anoniem Geplaatst: 9 november 2007 Auteur Delen Geplaatst: 9 november 2007 ik heb dit gedaan! hij geeft blijkbaar de fout bij de lijn : [code:1:0e23b3e190]DataRow rij = tabel.Rows[0];[/code:1:0e23b3e190] dus blijkbaar zegt hij dat de rij die geselecteerd is, dus waar die waarden overeen komen... dat hij die niet vind? ik heb weer een printscreen online gezet! [url]http://sander.ws-creations.be/docs/prntscrn2.jpg[/url] ligt de fout dan bij de oledbdataadapter.fill(dataset)? Quote Link naar reactie
anoniem Geplaatst: 10 november 2007 Auteur Delen Geplaatst: 10 november 2007 ik heb het gevonden! bij de lijn : [code:1:1757e0c73a]dalogin.Fill(ds);[/code:1:1757e0c73a] dit moet zijn: [code:1:1757e0c73a]dalogin.Fill(ds, "data");[/code:1:1757e0c73a] nu doet hij het! iedereen die mij hielp om dit te laten werken: bedankt! sander Quote Link naar reactie
anoniem Geplaatst: 12 november 2007 Auteur Delen Geplaatst: 12 november 2007 Graag gedaan, maar bedank jezelf ook even aangezien je die laatste stap zelf hebt uitgezocht. Mooi dat het nu werkt. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen