Ga naar inhoud

rij selecteren in dataset(c#)


anoniem

Aanbevolen berichten

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?
Link naar reactie
[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.
Link naar reactie
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?
Link naar reactie
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.
Link naar reactie
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
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...