Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

rij selecteren in dataset(c#)

sc
9 antwoorden
  • 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?
  • in c# is het:

    if ( ds.Tables[0].Rows.Count == 0)

    vb gebruikt (), c# [] bij indexen :wink:
  • 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)
  • 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
  • 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]
  • 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: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.
  • 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?
  • 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.

Beantwoord deze vraag

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