C# prikaz podataka iz baze u formi pomocu textBox

poruka: 6
|
čitano: 2.136
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
11 godina
neaktivan
offline
C# prikaz podataka iz baze u formi pomocu textBox

Pozdrav. Trebao bih savjet ako mi tko može pomoći. Radim za faks projekt pomoću formi. Prva forma je za login, student se prijavljuje sa svojim podatcima, te ako student postoji u bazi prijava prođe i prebaci na drugu formu u kojoj piše: "Dobrodošao 'username'" . Sad bih ispod toga htio da za tog studenta ispiše podatke iz baze tipa ime,prezime, adresa itd. u textBox-eve, ali javlja mi greške za kod te se ništa ne ispisuje. U privitku je kod za popunjavanje textBox-eva iz baze, te izgled forme.

 

Hell's Glory
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: C# prikaz podataka iz baze u formi pomocu text

Primjećujem da ne koristiš parametre što znači da ti netko može napraviti SQL Injection. To nije problem ako je neki studentski projekt, ako nije komercijalna aplikacija, ali možda se profesoru digne kosa na glavi ako to vidi.

 

Vidim da iz TextBoxeva čitaš username i password, a kasnije ih želiš staviti u te iste tekstboxeve. Ne vidim smisao. Dolje je primjer sa čitanjem iz tekst boxeva i stavljanje u Label kontrole. Također je prikazano kako se koriste parametrizirani Queriji.

 

Po vlastitoj želi možeš staviti SqlDBConnection umjesto Oledb. Ovisno o tome napravi odgovarajući include na vrhu, znači u ovom slučaju stavi slijedeće:

 

using System.Data;
using System.Data.OleDb;

 

...a ovo je kod koji stavlješ u event:

 

            string SQL;

            OleDbDataAdapter DAdapter = new OleDbDataAdapter();
            DataSet DSet;
            OleDbConnection OleDbConn;
            OleDbConn = new OleDbConnection("ovdje ubaci connection string");
            OleDbConn.Open();

            OleDbCommand command = new OleDbCommand();
            SQL = "SELECT * FROM Login Where Username=@Username AND Password=@Password";
            command = new OleDbCommand(SQL, OleDbConn);
            command.Parameters.Add("@Username", txtUsername.Text);

            command.Parameters.Add("@Password", txtPassword.Text);
            DAdapter.SelectCommand = command;
            DSet = new DataSet(); DAdapter.Fill(DSet);

            OleDbConn.Close();

           lblUsername.Text=DSet.Tables[0].Rows[0]["Username"].ToString();
           lblPassword.Text=DSet.Tables[0].Rows[0]["Password"].ToString();

 

 

11 godina
neaktivan
offline
C# prikaz podataka iz baze u formi pomocu textBox

Pozdrav. Zahvaljujem na odgovoru. Da li je moguće izbaciti textBox1 i textBox2 iz koda, da label-s dobivaju podatke direktno iz student tabele, gdje su zapisani isto tako username, i password kao i u login tabeli, ali student tabela sadrži i druge informacije o studentu. Cilj mi je da iz tabele login se uzimaju podatci za prijavu, nakon što se student prijavi, prebaci ga na novu formu, i na toj formi iz tablice student uzima i ispiše sve njegove podatke u labele.  

 

Evo dolje se nalazi tvoj kod, ali kod "command.Parameters" se koristi textBox1 i textBox2, dakle iz njih pokupi username i password koji sam ja upisao, ali bih htio to izbaciti, te da direktno iz tabele uzima sve podatke a ne iz prethodno ispunjenog textBox-a. Nadam se da razumiješ što želim reći, ove stvari tek učim tako da sam sa svime time na ti :)  Hvala još jednom

 

public void PopulateFields()
{
string SQL;

OleDbDataAdapter DAdapter = new OleDbDataAdapter();
DataSet DSet;
OleDbConnection OleDbConn;
OleDbConn = new OleDbConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\slame\OneDrive\Dokumenti\relacijska_baza_podataka.mdf;Integrated Security=True;Connect Timeout=30;");
OleDbConn.Open();

OleDbCommand command = new OleDbCommand();
SQL = "SELECT * FROM student Where username=@username AND password=@password";
command = new OleDbCommand(SQL, OleDbConn);
command.Parameters.AddWithValue("@username", textBox1.Text);
command.Parameters.AddWithValue("@password", textBox2.Text);
DAdapter.SelectCommand = command;
DSet = new DataSet(); DAdapter.Fill(DSet);

OleDbConn.Close();

lblusername.Text = DSet.Tables[0].Rows[0]["username"].ToString();
lblpassword.Text = DSet.Tables[0].Rows[0]["password"].ToString();
}

Hell's Glory
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: C# prikaz podataka iz baze u formi pomocu text

Trebaš razmisliti o koncepciji aplikacije.

 

Prvo pitanje je da li je to desktop ili web aplikacija jer o tome ovisi način izvedbe.

 

Drugo pitanje je da li želiš imati posebnu formu (ili pak web formu) za logiranje, a nakon što se korisnik logira prelazi na novu (web)formu gdje nastavlja nešto raditi s aplikacijom?

 

Što je bolja artikulacija, to je veća šansa da netko da pravi odgovor, stoga navedi što preciznije koji je cilj.

11 godina
neaktivan
offline
C# prikaz podataka iz baze u formi pomocu textBox

Radit će se o desktop aplikaciji gdje se studenti mogu prijaviti i vidjeti svoje podatke. Odvojene forme su, jedna za login, te nakon što se korisnik logira, prebacuje ga na drugu formu, gdje bi se ispisali svi njegovi podatci koji se pokupe iz baze podataka.

 

Dakle trebao bih textBox-eve ili label-ove, u koje će se ispisivati podatci tipa username, password, ime, prezime, adresa, smjer, godina fakas itd za studenta koji je prijavljen...

 

Također, ne znam na koji način da izvedem da se provjerama username koji je upisan na formi1 kod logina, te da samo za taj username povuće sve podatke iz baze ... Trenutno sam izradio to pomoću DataGrida, ali mi taj grid prikazuje sve studente i sve tabele iz baze.

Hell's Glory
Poruka je uređivana zadnji put pet 28.7.2017 0:23 (Hells Glory).
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: C# prikaz podataka iz baze u formi pomocu text

Shvaćam. Trebaš onda napraviti ovako:

 

nakon izvršenog SQL upita, tj. nakon DSet = new DataSet(); DAdapter.Fill(DSet); trebaš provjeriti koja vrijednost se dobiva kao broj slogova.

 

Broj slogova koji su pronađeni je DSet.Tables[0].Rows.Count.

 

Znači

 

if (DSet.Tables[0].Rows.Count>0)

{

Prebaci na drugu formu, web stranicu ...

}

 

Kada si to napravio, onda na drugoj stranici u form_load eventu staviš isti onaj kod koji sam napisao prije, samo prilagodiš SQL upit. Dohvat polja iz baze radiš tako da navedeš ime polja u navodnicima. Npr. lblIme.Text = lblUsername.Text=DSet.Tables[0].Rows[0]["Ime"].ToString();

 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice