Ga naar inhoud

vb.net vertalen naar c#


anoniem

Aanbevolen berichten

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!
Link naar reactie
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'
Link naar reactie
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#
Link naar reactie
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.
Link naar reactie
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. ...
Link naar reactie
[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?
Link naar reactie
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
Link naar reactie
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.
Link naar reactie
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)?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...