anoniem Geplaatst: 21 oktober 2007 Delen Geplaatst: 21 oktober 2007 ik zit met het volgende probleem: ik heb altijd in vb.net gewerkt. bij het inloggen op een pagina wil ik hem laten zoeken naar rijen in de tabel die overeenkomen met de ingevulde gegevens. in VB.net dee ik dit zo: [code:1:f59e9baef6]Private dbconn As Data.OleDb.OleDbConnection Private dalogin As Data.OleDb.OleDbDataAdapter Private ds As Data.DataSet Private code As String Protected Sub inloggen(ByVal sender As Object, ByVal e As System.EventArgs) dbconn = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|datadirectory|/bibliotheek.mdb") dbconn.Open() dalogin = New Data.OleDb.OleDbDataAdapter("Select * From acounts Where gebruikersnaam='" & txtnaam.Text & "' and toegangscode='" & txtpaswoord.Text & "'", dbconn) ds = New Data.DataSet dalogin.Fill(ds) If ds.Tables(0).Rows.Count = 0 Then Response.Write("Foute gegevens") Else Session.Add("rechten", ds.Tables(0).Rows(0).Item("bevoegdheid")) Session.Add("user", ds.Tables(0).Rows(0).Item("gebruikersnaam")) Session.Add("code", ds.Tables(0).Rows(0).Item("toegangscode")) FormsAuthentication.RedirectFromLoginPage(txtnaam.Text, False) schrijf_tijdlog() End If dbconn.Close() End Sub[/code:1:f59e9baef6] Maar kort geleden ben ik in c# beginnen programmeren. en ik heb alle dinges aangepast aan c#, maar 1 ding geeft hij fout aan en ik weet niet wat er fout aan is: in vb.net dee ik dit: [code:1:f59e9baef6]If ds.Tables(0).Rows.Count = 0 Then[/code:1:f59e9baef6] In c# wou ik dit doen: [code:1:f59e9baef6]If(ds.Tables(0).Rows.Count ==0)[/code:1:f59e9baef6] maar daar geeft hij een fout bij:s weten jullie soms hoe ik dit moet doen? Quote Link naar reactie
anoniem Geplaatst: 21 oktober 2007 Auteur Delen Geplaatst: 21 oktober 2007 in c# is het: if ( ds.Tables[0].Rows.Count == 0) vb gebruikt (), c# [] bij indexen :wink: Quote Link naar reactie
anoniem Geplaatst: 22 oktober 2007 Auteur Delen Geplaatst: 22 oktober 2007 En let ook op de woordjes 'if' en 'else'. In C# worden die met kleine letters geschreven (zoals ook al in het voorbeeldje van funcruiser te zien is) Quote Link naar reactie
anoniem Geplaatst: 23 oktober 2007 Auteur Delen Geplaatst: 23 oktober 2007 bedankt! hij laad de gegevens uit de database! Nu... nog een klein probleempje waar ik al eb naar zitten zoeken maar niet vind. Hoe open je een ander form? bij vb.net was dat : [code:1:e282ed9bbe]My.Forms.login.Show()[/code:1:e282ed9bbe] Maar in c# zou ik niet weten hoe dat moet Quote Link naar reactie
anoniem Geplaatst: 24 oktober 2007 Auteur Delen Geplaatst: 24 oktober 2007 Om een Form te tonen, moet je eerst een object van het type System.Windows.Forms.Form maken. Vervolgens kun je de methode Show() van dat object aanroepen: [code:1:0ac8240afa] Form myForm = new MyForm(); /* Hier kun je de klasse naam van jouw formklasse invullen */ myForm.Show(); [/code:1:0ac8240afa] Quote Link naar reactie
anoniem Geplaatst: 25 oktober 2007 Auteur Delen Geplaatst: 25 oktober 2007 Het werkt! heel erg bedankt! Misschien nog 1 klein vraagje, want ik stel al zoveel vragen :wink: hoe kan je dan... controls vanuit een ander formulier bedienden? bvb in form 1 staat een tekstbox en in form twee wil je de waarden uit die tekstbox halen. heel erg bedankt voor alle antwoorden! Quote Link naar reactie
anoniem Geplaatst: 26 oktober 2007 Auteur Delen Geplaatst: 26 oktober 2007 [quote:e83b802e31="sc"]..., want ik stel al zoveel vragen :wink: ...[/quote:e83b802e31] Dat geeft helemaal niks. Om een antwoord op je vraag te geven. Om te bereiken wat jij wilt zijn er meerdere mogelijkheden, maar de mooiste manier is als volgt: In dit voorbeeld ga ik er vanuit dat het bewuste control zich op MyForm2 bevindt en dat je het vanuit MyForm1 wilt benaderen. - Maak een publieke property in myForm2 waarbij je de text van de control kunt manipuleren [code:1:e83b802e31] public string TextboxText { get { return this.myTextbox.Text; } set { this.myTextbox.Text = value; } } /* Als je enkel de waarde wilt kunnen ophalen en niet wilt wijzigen, dan kun je de 'set' weglaten. */ [/code:1:e83b802e31] - Vanuit myForm1 kun je dan de volgende code uitvoeren: [code:1:e83b802e31]... MyForm2 myForm2; ... //Tekst van de control ophalen string text = myForm2.TextboxText; //Tekst van control aanpassen myForm2.myTextboxText = "Dit wordt de nieuwe waarde"; ...[/code:1:e83b802e31] Het voordeel van deze methode is dat je binnen myForm2 nu de volledige controle houdt over de control en daardoor kun je bijvoorbeeld de waarde van het textbox valideren. Het alternatief is om de control simpelweg 'public' te maken, maar daarmee geef je alle controle over het component uit handen. Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2007 Auteur Delen Geplaatst: 27 oktober 2007 ik heb geprobeerd wat u mij zei. dit geeft hij als fout: Use of unassigned local variable 'myForm2' dit is de code: en bij string text= myForm2.textboxtext; geeft hij de fout [code:1:c3822b0110] private void hoofdscherm_Load(object sender, EventArgs e) { login myForm2; //Tekst van de control ophalen string text = myForm2.TextboxText; //Tekst van control aanpassen [/code:1:c3822b0110] weet u wat ik verkeerd doe? Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2007 Auteur Delen Geplaatst: 27 oktober 2007 Het probleem zit hem erin dat je weliswaar de variabele myForm2 hebt gedeclareerd, maar niet hebt geïnitialiseerd. Anders gezegd, de variabele heeft nog helemaal geen waarde. Wellicht dat ik dat niet helemaal duidelijk in mijn codevoorbeeld heb gemaakt. Je zult dus eerst de variabele een naam moeten geven. Het wordt dan iets als dit: [code:1:ec51e67101]private void hoofdscherm_Load(object sender, EventArgs e) { login myForm2 = new login(); //Tekst van de control ophalen string text = myForm2.TextboxText; //Tekst van control aanpassen [/code:1:ec51e67101] Als je al een globale variabele hebt van het type login, dan kun je die uiteraard ook gewoon gebruiken. Overigens is dit deel volgens mij niet anders dan VB.net (of welke object geörienteerde taal dan ook). Ook daar zul je een variabele eerst een waarde moeten geven voordat je er een functie van kunt aanroepen. Quote Link naar reactie
anoniem Geplaatst: 31 oktober 2007 Auteur Delen Geplaatst: 31 oktober 2007 aja... ma et werkt nog altijd ni :? :? waarschijnlijk doe ik iets verkeerd ma kheb zelf al keer geprobeerd om vanuit het login form, de gebruikersnaam in het ander form te zetten... dus na de login laat ik mijn myform2.statuslbl1.text gelijk zetten aan een tekstwaarde en dan laat ik een msgbox weergeven van die statuslbl, in de msgbox sta dan de waarde die in de statuslbl moet staan. [code:1:db00f1ba82] MessageBox.Show("juiste code!", "succesvol ingelogd", MessageBoxButtons.OK); Form hoofdscherm = new hoofdscherm(); hoofdscherm myForm2 = new hoofdscherm(); myForm2.statuslbl0.Text = "testje"; MessageBox.Show(myForm2.statuslbl0.Text); hoofdscherm.Show(); [/code:1:db00f1ba82] ma vanals ik da form open is die tekst er weer uit :roll: kzal nog wa zoeken, waarschijnlijk heb ik iets over het hoofd gezien. bedankt voor de informat!e Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen