Thread: Visual studio: access
-
27-07-2010, 22:15 #1
Visual studio: access
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.no votes
-
-
28-07-2010, 00:21 #2Approved 9-lifer
- Registered
- 31/07/04
- Location
- Kortrijk
- Posts
- 1,019
- iTrader
- 4 (100%)
- Mentioned
- 0 Post(s)
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
BLOG: http://blog.voltje.be/
DESKTOP: AMD Phenom x4 925 / ASUS Mobo / ATI RADEON HD5770 1GB DDR5 / 4GB DDR3 / 1x 24" Full HD Samsung/ Logitech G9x / QPad Lowsense / Logitech Illuminated !
LAPTOP: Lenovo T510 / Intel i5 @ 2.40Ghz / 8GB Ram / 120GB SSD
WOW CHAR: Averlena, Protection Paladin @ Talnivarrno votes
-
28-07-2010, 22:03 #3
Werkt dit met een Windows form? Ik probeer het nu al een tijdje zonder succes...
no votes
-
29-07-2010, 04:05 #4Approved 9-lifer
- Registered
- 31/07/04
- Location
- Kortrijk
- Posts
- 1,019
- iTrader
- 4 (100%)
- Mentioned
- 0 Post(s)
Ja dat werkt
BLOG: http://blog.voltje.be/
DESKTOP: AMD Phenom x4 925 / ASUS Mobo / ATI RADEON HD5770 1GB DDR5 / 4GB DDR3 / 1x 24" Full HD Samsung/ Logitech G9x / QPad Lowsense / Logitech Illuminated !
LAPTOP: Lenovo T510 / Intel i5 @ 2.40Ghz / 8GB Ram / 120GB SSD
WOW CHAR: Averlena, Protection Paladin @ Talnivarrno votes
-
11-08-2010, 20:50 #5Approved 9-lifer
- Registered
- 15/10/07
- Location
- Aalst
- Posts
- 1,333
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/47
Zoekt anders gewoon een beetje boeken/informatie over ADO.Net
no votes
-
13-08-2010, 11:14 #6
wat je ook kan proberen is OleDB te gebruiken.
Let wel op deze code is geschreven in C#.
[C#]
hoop dat dit iets je kan helpen.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."); } }no votes
-
15-08-2010, 21:52 #7Approved 9-lifer
- Registered
- 27/11/09
- Location
- Erembodegem (Aalst)
- Posts
- 94
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
een login + registratie maken in Visual Studio is makkelijk.
Dit is mijn code die ik gebruikte om een login te maken:
en registratie is gwn u velden linken met de dataset en dan INSERT INTO via sqlCode: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 SubWho Dares Wins
“Even the lowest man can rise beyond the heavens, when tempted with the proper reward.”no votes
