Archief - Visual studio: access

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

aTw2

Legacy Member
hey, ik ben nieuw op deze website en ik hoop hier een paar antwoorden te vinden.

Ik ben al een tijdje bezig met Visual studio en ik wil graag een access bestand verbinden met mijn programma.
Ik kan het allemaal wel verbinden, maar ik weet niet hoe ik het kan bewerken.

Bv. Ik wil een login + registratie maken. Wat zijn dan de codes om een login op te zoeken, en controleren met pass?
En hoe voeg ik een persoon erbij.

Mattias

P.S. ik heb goede kennis van access indien dit nodig zou moeten zijn.

voltje

Legacy Member
Hoe gebeurt dit: SQL

Hoe doe je dit in je programma...
Wel je moet verbinding maken met je database he op volgende manier: (let op, dit is niet MIJN klasse, en het kan waarschijnlijk beter, maar het werkt)

Maak een klasse aan met naam Database en zorg dat het eruit ziet zoals deze:

#1062837 - Pastie

Wil je nu iets "opvragen" maak je eerst een instantie aan van die database class:

private Database db = new Database("GIPpinguin.accdb");

en dan kan je gegevens opvragen voor bvb in te loggen:

DataSet ds = db.CreateTable("SELECT * FROM Speler WHERE (((Speler.Username)='" + user + "') AND ((Speler.Password)='" + pass + "'));", "user");
if (ds.Tables["user"].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables["user"].Rows)
{
int id = Convert.ToInt32(dr["IdSpeler"].ToString());
string username = dr["Username"].ToString();
string password = dr["Password"].ToString();
bool admin = Convert.ToBoolean(dr["Admin"].ToString());
int Chips = Convert.ToInt32(dr["Chips"].ToString());
//Of vraag gegevens op die je nodig hebt, via: dr["kolomnaam"].toString() en dan casten naar het juiste datatype
}
}


Zoiets werkt...
Ik werk zelf weinig met acces, en ik ben er zeker van dat er betere manieren zijn. Maar die heb ik nu niet bij de hand.
Deze manier werkt :p

aTw2

Legacy Member
Werkt dit met een Windows form? Ik probeer het nu al een tijdje zonder succes...

VinnyFlanders

Legacy Member
Zoekt anders gewoon een beetje boeken/informatie over ADO.Net

killerheyz

Legacy Member
wat je ook kan proberen is OleDB te gebruiken.
Let wel op deze code is geschreven in C#.

[C#]
Code:
Using System.Data;
Using System.Data.OleDB;

public bool CheckUser(string username, string password)
{
   OleDBConnection con = new OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;");
   OleDBCommand com = new OleDBCommand(string.Format("SELECT * FROM Users WHERE Username = '{0}' AND Password = '{1}'", username, password), con);
   con.Open();
   DataSet ds = new DataSet();
   OleDBDataAdapter adapter = new OleDBDataAdapter(com);
   adapter.Fill(ds, "Users");
   con.Close();

   if(ds.Tables["Users"].Rows.Count > 0)
      return true;
   else
      return false;
}

private void Button1_Click(object sender, EventArgs e)
{
     if(CheckUser(TextBox1.Text, TextBox2.Text))
     {
         // Opdracht uivoeren.
     }
     else
     {
         MessageBox.Show("Verkeert gebruikers naam of wachtwoord.");
     }
}

hoop dat dit iets je kan helpen.

Howlingwolfe

Legacy Member
een login + registratie maken in Visual Studio is makkelijk.
Dit is mijn code die ik gebruikte om een login te maken:
Code:
Imports System.Data.OleDb
bij u login knop
strGebruikersnaam = txtGebruikersnaam.Text.trim
strWachtwoord = txtWachtwoord.Text.trim
Dim reader As OleDbDataReader 'Create an OleDbDataReader object.
Dim SQLstr As String = "Select Gebruikersnaam, from Login where Gebruikersnaam ='" & strGebruikersnaam & "' AND wachtwoord = '" & strWachtwoord & "'"
Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=M:\Gipprogramma\Test.accdb"
Dim conn As OleDbConnection = New OleDbConnection(conString)
conn.Open()
cmd = New OleDbCommand(SQLstr, conn)


reader = cmd.ExecuteReader()

dim found as Boolean = false
While (reader.Read())
found = true
exit while
End While


reader.Close()
conn.Close()

if found
Select Case True


Case String.Compare("strGebruikersnaam ", " svancauwenbergh ", True) = 0
Me.Hide()
Reservaties.Show()

Case String.Compare("strGebruikersnaam ", " limpens ", True)
Me.Hide()
Reservaties.Show()

Case String.Compare("strGebruikersnaam ", " debbie ", True)
Process.Start("winword.exe")

Case String.Compare("strGebruikersnaam ", " jvanderbiest ", True)
Me.Hide()
Overzicht.Show()
' als er foute gegevens ingevoerd worden

Case else
‘Oplossen, want er is een gebruiker gevonden in de database met ingevoerde gebruikersnaam en wachtwoord

end select

else
MsgBox("u hebt foute login gegevens gebruikt", MsgBoxStyle.Information, "Login fout")
intFouten += 1
end if



' als het aantal fouten gelijk is aan 3 sluit het programma af
If intFouten = 3 Then
MsgBox("u hebt al 3maal foute login gegevens gebruikt programma sluit nu af", MsgBoxStyle.Information, "Foute invoer")
Application.Exit()
End If
' de velden leegmaken
txtGebruikersnaam.Text = ""
txtWachtwoord.Text = ""
End Sub
en registratie is gwn u velden linken met de dataset en dan INSERT INTO via sql
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan