Documente Academic
Documente Profesional
Documente Cultură
RAPORTUL
PRIVIND REZULTATELE STAGIULUI
PRACTICII TEHNOLOGICE
AL ELEVULUI
Gonța Nicolai
Grupa – PAP1613G
Chişinău 2019
Cuprins
RAPORTUL STAGIULUI DE PRACTICĂ....................................................................................3
DESCRIEREA ACTIVITĂȚILOR REALIZATE...........................................................................5
CONȚINUTUL ACTIVITĂȚILOR ȘI SARCINILOR INDIVIDUALE DE LUCRU...................7
1. Descrierea conținutului sarcinii...............................................................................................7
Magazin alimentar...................................................................................................................7
2. Listingul aplicației...................................................................................................................8
Principala.................................................................................................................................8
Form1.....................................................................................................................................10
Form2.....................................................................................................................................12
Form3.....................................................................................................................................15
Despre noi..............................................................................................................................17
Contacte.................................................................................................................................18
Admin....................................................................................................................................19
Proceduri................................................................................................................................30
3. Schema bazei de date:............................................................................................................30
4. Raporte:..................................................................................................................................30
5. Prezentarea programului:.......................................................................................................36
Bibliografie....................................................................................................................................46
2
RAPORTUL STAGIULUI DE PRACTICĂ
Conform sarcinii primite la data de 20.05.2019 am început a elebora tot ce a fost propus, începând
cu crearea designului, am elaborat câteva ferestre principale și câteva tabele pentru a efectua testarea
corectă a introducerii email-ului și parolei. Mai târziu am scris codul și creat formele necesare
pentru a efectua corect sarcina propusă de profesor. Dupa elaborarea precedentelor sarcini am creat
o baza de date mult mai complexă și normalizată. Spre sfârșit am testat programul efctuat pentru a
nu depista erori în caz contrar înlatur-am erorile.
1. Fereastra de autentificare/înregistrare;
2. Fereastra principală cu butoane către celelalte componente și informații „Despre noi” și
„Contacte”;
3. Fereastra cu categoriile de mărfuri;
4. Ferestre pentru adăugarea datelor (categorii, mărfuri, clienți etc.);
5. Fereastra pentru ștergerea/modificarea datelor existente în BD;
6. Fereastra pentru afișarea datelor după un criteriu.
3
Observații personale:
Pe parcursul stagiului de practică am descoperit mai multe competente ale mele, am descoperit că
programarea este un mod de ați crea o lume aparte în cel mai frumos mod posibil. Am observat că
cu cât mai mult efort depui cu atât programul devine mai complex și usor de înțeles.
Concluzii:
În concluzie pot spune ca stagiul de practică ne oferă o dezvoltare a abilităților și o pregătire amplă.
Având posibilitatea de a sustine stagiul de practică am posibilitatea să observ modul de lucru într-o
echipă, pot beneficia de trăininguri cu diverse tematici, pot acumula experienta și am posibilitatea de
a interacționa cu oameni profesioniști în domeniu. Conform unor sodaje susținute anterior,
persoanele care au susținut și promovat stagiul de practică au mai mult success în viata profesională,
având mai multă experiență. Plus la asta stagiul de practică oferă posibilitați și pentru angajatori,
aceștia având ocazia să cunoască și să evedențieze resurse umane cu adevărat potențial, pe care în
timp să-i perfecționeze conform standartelor proprii și îi pot transforma în angajați permanenți și de
valoare.
4
Data: __________ Semnătură elevului ____________________
Magazin alimentar
Magazin alimentar. Elaborați o aplicație software care gestionează un magazin alimentar (mărfuri,
clienți, vânzări etc.) și oferă informația despre serviciile prestate.
Cerințe pentru aplicație:
6
- Fereastra de autentificare/înregistrare;
- Fereastra principală cu butoane către celelalte componente și informații „Despre noi” și
„Contacte”;
- Fereastra cu categoriile de mărfuri;
- Fereastra cu coșului de cumpărături;
- Ferestre pentru adăugarea datelor (categorii, mărfuri, clienți etc.);
- Fereastra pentru ștergerea/modificarea datelor existente în BD;
- Fereastra pentru afișarea datelor după un criteriu.
Algoritmul aplicației se va realiza după principiile programării vizuale. Informațiile se vor prelucra
la solicitarea utilizatorului folosind meniuri, formulare și controlere.
Afișarea la ecran a informațiilor sau imprimarea acestora se va realiza prin intermediul rapoartelor.
2. Listingul aplicației
Principla
using System;
using System.Collections.Generic;
7
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Magazin_alimentar
{
public partial class Principala : Form
{
public Principala()
{
InitializeComponent();
button5.MouseLeave += OnMouseLeaveButton5;
button5.MouseEnter += OnMouseEnterButton5;
}
8
private void button4_Click(object sender, EventArgs e)
{
Contacte co = new Contacte();
co.Show();
}
}
}
Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Magazin_alimentar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///////////////////////////////////////////////////////////////////////////////////Logar -
Email si
Parola//////////////////////////////////////////////////////////////////////////////////////
/////////
private void logare_Click(object sender, EventArgs e)
{
9
SqlConnection sqlcon = new SqlConnection(@"Data
Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Colea\Desktop\Magazin
alimentar\BD\LoginMAG.mdf;Integrated Security=True;Connect Timeout=30");
}
/////////////////////////////////////////////////////////////////Buton
Exit////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
/////////////////////////////////////////////////////////////////Buton
Inregistrare////////////////////////////////////////////////////////////////////////////////
/////////////////////////////
private void button1_Click(object sender, EventArgs e)
{
Form3 objForm3 = new Form3();
objForm3.Show();
}
}
}
10
Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
11
using System.IO;
using System.Drawing.Imaging;
namespace Magazin_alimentar
{
public partial class Form2 : Form
{
12
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs
e)
{
SqlCommand sel2 = new SqlCommand("SELECT * FROM [Produse] INNER JOIN
[Categorii] ON [Produse].[ID_Categorie]=[Categorii].[ID_Categorie] INNER JOIN [Furnizori] ON
[Produse].[ID_Furnizor]=[Furnizori].[ID_Furnizor] where ID_Produs=@ne", con);
sel2.Parameters.AddWithValue("@ne", dataGridView1.CurrentRow.Cells[0].Value);
SqlDataAdapter da2 = new SqlDataAdapter(sel2);
DataTable ds2 = new DataTable();
da2.Fill(ds2);
textBox3.Text = ds2.Rows[0].ItemArray[0].ToString();
label1.Text = "Denumire: " + ds2.Rows[0].ItemArray[1].ToString();
label2.Text = "Categorie: " + ds2.Rows[0].ItemArray[6].ToString();
label3.Text = "Pret: " + ds2.Rows[0].ItemArray[2].ToString() + " lei";
label4.Text = "Furnizor: " + ds2.Rows[0].ItemArray[8].ToString();
}
}
private void button3_Click(object sender, EventArgs e)
{
Principala p = new Principala();
Form1 f1 = new Form1();
this.Close();
p.Show();
f1.Show();
}
}
}
}
13
Form3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Magazin_alimentar
{
public partial class Form3 : Form
{
14
string sqlconnection = @"Data
Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Colea\Desktop\Magazin
alimentar\BD\LoginMAG.mdf;Integrated Security=True;Connect Timeout=30";
public Form3()
{
InitializeComponent();
}
//////////////////////////////////////////////////////Inregistrare in baza de
date///////////////////////////////////////////////
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" ||
textBox4.Text == "" || textBox5.Text == "")
MessageBox.Show("Indepliniti toate cimpurile");
else if (textBox5.Text != textBox6.Text)
MessageBox.Show("Parolele nu coincid");
else
{
using (SqlConnection conSQL = new SqlConnection(sqlconnection))
{
conSQL.Open();
SqlCommand sqlcmd = new SqlCommand("addUser", conSQL);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.AddWithValue("@Email", textBox4.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Parola", textBox5.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Nume", textBox1.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Prenume", textBox2.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Adresa", textBox3.Text.Trim());
sqlcmd.ExecuteNonQuery();
MessageBox.Show("Inregistrare reusita");
//Inapoi la principala
this.Close();
}
}
}
}
15
desprenoi
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Magazin_alimentar
{
public partial class desprenoi : Form
{
public desprenoi()
{
InitializeComponent();
}
16
}
}
}
Contacte
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Magazin_alimentar
{
public partial class Contacte : Form
{
public Contacte()
{
InitializeComponent();
}
17
private void Contacte_Load(object sender, EventArgs e)
{
}
}
}
admin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
18
namespace Magazin_alimentar
{
public partial class admin : Form
{
SqlConnection con = new SqlConnection(@"Data
Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Colea\Desktop\Magazin
alimentar\BD\LoginMAG.mdf;Integrated Security=True;Connect Timeout=30");
public admin()
{
InitializeComponent();
}
//Afisare furnizori
SqlCommand user = new SqlCommand("SELECT * from Furnizori", con);
SqlDataAdapter us = new SqlDataAdapter(user);
DataSet su = new DataSet();
us.Fill(su);
dataGridView2.DataSource = su.Tables[0];
dataGridView9.DataSource = su.Tables[0];
//Afisre user
SqlCommand ui = new SqlCommand("SELECT * from Login", con);
SqlDataAdapter di = new SqlDataAdapter(ui);
DataSet du = new DataSet();
di.Fill(du);
dataGridView4.DataSource = du.Tables[0];
dataGridView6.DataSource = du.Tables[0];
//Afisare admini
SqlCommand fur = new SqlCommand("SELECT * from Admini", con);
SqlDataAdapter fr = new SqlDataAdapter(fur);
DataSet fu = new DataSet();
fr.Fill(fu);
dataGridView3.DataSource = fu.Tables[0];
dataGridView5.DataSource = fu.Tables[0];
dataGridView11.DataSource = fu.Tables[0];
//Afisare produse
SqlCommand sel = new SqlCommand("SELECT [Produse].[ID_Produs],
[Produse].[Denumire], Produse.Pret, [Categorii].[Denumire_c], [Furnizori].
[Denumire_f] FROM [Produse] INNER JOIN [Categorii] ON [Produse].
[ID_Categorie]=[Categorii].[ID_Categorie] INNER JOIN [Furnizori] ON [Produse].
[ID_Furnizor]=[Furnizori].[ID_Furnizor]", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
dataGridView8.DataSource = ds.Tables[0];
dataGridView7.DataSource = ds.Tables[0];
if (string.IsNullOrWhiteSpace(textBox1.Text) ||
string.IsNullOrWhiteSpace(textBox2.Text))
{
MessageBox.Show("Indepliniti cimpurile");
}
else
{
SqlCommand cmd;
cmd = new SqlCommand("Insert into Produse(Denumire, Pret,
ID_Categorie, ID_Furnizor) values('" + this.textBox1.Text + "', '" +
this.textBox2.Text + "', '" + comboBox1.SelectedValue + "', '" +
comboBox2.SelectedValue + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Inserare reusita!");
}
SqlCommand sel = new SqlCommand("SELECT [Produse].[ID_Produs],
[Produse].[Denumire], Produse.Pret, [Categorii].[Denumire_c], [Furnizori].
[Denumire_f] FROM [Produse] INNER JOIN [Categorii] ON [Produse].
[ID_Categorie]=[Categorii].[ID_Categorie] INNER JOIN [Furnizori] ON [Produse].
[ID_Furnizor]=[Furnizori].[ID_Furnizor]", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
dataGridView8.DataSource = ds.Tables[0];
dataGridView7.DataSource = ds.Tables[0];
}
SqlCommand user = new SqlCommand("SELECT * from Furnizori", con);
SqlDataAdapter us = new SqlDataAdapter(user);
DataSet su = new DataSet();
us.Fill(su);
dataGridView2.DataSource = su.Tables[0];
}
SqlCommand sel = new SqlCommand("SELECT * from Admini", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView3.DataSource = ds.Tables[0];
dataGridView5.DataSource = ds.Tables[0];
dataGridView11.DataSource = ds.Tables[0];
}
}
SqlCommand sel = new SqlCommand("SELECT * from Login", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView4.DataSource = ds.Tables[0];
dataGridView6.DataSource = ds.Tables[0];
}
}
////////////////////////////Sterge
admin////////////////////////////////////////////////
private void button6_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM Admini WHERE ID_Admin = '" +
textBox14.Text.Trim() + "'";
SqlDataAdapter sda = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count == 1)
{
SqlCommand cmd = new SqlCommand("delete from Admini where
ID_Admin=@id", con);
con.Open();
cmd.Parameters.AddWithValue("@id", textBox14.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Stergere reusita");
}
else
{
MessageBox.Show("Introdu corect datele");
}
23
SqlCommand sel = new SqlCommand("SELECT * from Admini", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView3.DataSource = ds.Tables[0];
dataGridView5.DataSource = ds.Tables[0];
}
////////////////////////////Sterge
user////////////////////////////////////////////////
private void button7_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM Login WHERE ID_Login = '" +
textBox15.Text.Trim() + "'";
SqlDataAdapter sda = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count == 1)
{
SqlCommand cmd = new SqlCommand("delete from Login where
ID_Login=@id", con);
con.Open();
cmd.Parameters.AddWithValue("@id", textBox15.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Stergere reusita");
}
else
{
MessageBox.Show("Introdu corect datele");
}
}
SqlCommand user = new SqlCommand("SELECT * from Categorii", con);
SqlDataAdapter us = new SqlDataAdapter(user);
DataSet su = new DataSet();
us.Fill(su);
dataGridView10.DataSource = su.Tables[0];
command.Parameters.AddWithValue("ID_Produs", textBox20.Text);
command.Parameters.AddWithValue("Denumire", textBox18.Text);
25
command.Parameters.AddWithValue("Pret", textBox16.Text);
command.Parameters.AddWithValue("ID_Categorie",
comboBox4.SelectedValue);
command.Parameters.AddWithValue("ID_Furnizor",
comboBox3.SelectedValue);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
else
{
MessageBox.Show("Incercaati din nou");
}
command.Parameters.AddWithValue("ID_Furnizor", textBox23.Text);
command.Parameters.AddWithValue("Denumire_f", textBox22.Text);
command.Parameters.AddWithValue("Adresa_f", textBox21.Text);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
else
{
MessageBox.Show("Incercaati din nou");
}
SqlCommand user = new SqlCommand("SELECT * from Furnizori", con);
SqlDataAdapter us = new SqlDataAdapter(user);
DataSet su = new DataSet();
us.Fill(su);
dataGridView2.DataSource = su.Tables[0];
26
dataGridView9.DataSource = su.Tables[0];
}
command.Parameters.AddWithValue("ID_Admin", textBox24.Text);
command.Parameters.AddWithValue("Nume", textBox25.Text);
command.Parameters.AddWithValue("Prenume", textBox26.Text);
command.Parameters.AddWithValue("Password", textBox27.Text);
command.Parameters.AddWithValue("Login", textBox28.Text);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
else
{
MessageBox.Show("Incercaati din nou");
}
SqlCommand sel = new SqlCommand("SELECT * from Admini", con);
SqlDataAdapter da = new SqlDataAdapter(sel);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView3.DataSource = ds.Tables[0];
dataGridView5.DataSource = ds.Tables[0];
dataGridView11.DataSource = ds.Tables[0];
}
command.Parameters.AddWithValue("ID_Login", textBox29.Text);
command.Parameters.AddWithValue("Email", textBox30.Text);
command.Parameters.AddWithValue("Parola", textBox31.Text);
command.Parameters.AddWithValue("Nume", textBox32.Text);
command.Parameters.AddWithValue("Prenume", textBox33.Text);
command.Parameters.AddWithValue("Adresa", textBox34.Text);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
else
{
MessageBox.Show("Incercaati din nou");
}
}
}
}
28
Proceduri
4. Rapoarte:
Tabel admin
29
Tabel Categorii
Tabel Comenzi
Tabel Furnizori
30
Tabel Login
Tabel Produse
31
32
33
34
35
5. Prezentarea programului
Forma Principala
36
2. În caz că nu suntem înregistrați accesăm butonul “Înregistrațivă” și mai apoi apare fereastra
Formular
37
4. Accesând direct de pe pagina principăl butonul înregistrare ajungem direct la fereastra
Formular
5. Accesând butonul “Despre noi” sau “Contacte” pe fereastra principală vor aparea ferestrele
respective cu informatia necesară
6. Dacă dorim să închidem fereastra principală facem click pe butonul “Exit” care la plasarea
cursorului pe el se face roșu
38
7. Dacă ne logăm ca user se deschide următorea fereastră unde putem plasa o comandă sau să
căutăm un produs sortândul după categoria sa
8. Facând click pe combobox apar toate categoriile existente în baza de date, iar dacă facem
click pe altă categorie din combobox apar produsele cu categoria respectivă
39
9. Dacă facem click pe unul din produsele apărute în datagridview în dreapta ei apare
informația despre produsul selectat
10. Pentru a plasa o comandă este necesar de a introduce datele Nume Prenumele, Telefonul și
Cantitatea produsului (cantitatea este aleasă cu ajutorul unui combobox) iar pentru efectuarea
comenzii este necesar să facem click pe butonul “Comandă”
40
11. Dacă dorim să ne delogăm din contul respectiv facem click pe butonul “Delogheazăte” (în
colț dreapta sus)
12. Mai apoi dacă avem nevoie să modificăm, ștergem și actualiza datele din baza de date ne
logăm cu contul unui admin
41
42
13. La introducerea datelor corect în casete se vor introduce noi date în baza de date și se va
afișa MessageBox-ul cu informația că totul este introdus corect
43
14. În caz că dorim să ștergem un utilizator, admin, produs, comandă din baza de date
introducem în una din casete ID-ul (user, admin, produs, comandă) și facem click pe butonul
“Șterge” respectiv ID-ul introdus și datele care îi aparțin se șterg
15. Pentru a face update la baza de date este necesar introducerea corectă a ID-ului produsului
sau furnizorului etc. și mai apoi este posibilă modificarea datelor pentru ID-ul respectiv
44
(După modificare)
16. Dacă dorim să ne delogam facem click pe butonul “Delogheazăte”.
Bibliografie
1. https://www.w3schools.com/
2. http://1bestcsharp.blogspot.com/2016/04/csharp-update-datagridview-cell-image.html
3. https://iconsflow.com/editor
45
4. https://stackoverflow.com/questions/22695778/sql-server-invalid-column-name-error-when-
inserting-into-excel-linked-server
5. https://www.codeproject.com/Questions/1235385/How-to-make-an-inner-join-in-Csharp-for-
inserting
6. https://documentation.devexpress.com/XtraReports/2658/Get-Started-with-DevExpress-
Reporting/Add-a-Report-to-Your-VS-Project/Add-a-New-Report-to-a-WinForms-
Application
7. https://stackoverflow.com/questions/33510649/delete-foreign-key
8. https://www.c-sharpcorner.com/UploadFile/1e050f/insert-update-and-delete-record-in-
datagridview-C-Sharp/
9. https://1bestcsharp.blogspot.com/2014/11/c-how-to-clear-text-of-all-textboxes-in.html
46