Vraag & Antwoord

Programmeren

vb.net vertalen naar c#

13 antwoorden
  • 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!
  • 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'
  • 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....
  • 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#
  • 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.
  • 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.
  • 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. ...
  • [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?
  • Voor meer informatie over de opbouw van een connectie string kun je ook [url=http://www.connectionstrings.com/]hier[/url] eens kijken
  • 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
  • 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.
  • 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)?
  • 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

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.