Documente Academic
Documente Profesional
Documente Cultură
RAPORTUL
STAGIULUI DE PRACTICĂ
Arcan Petru
Chişinău 2021
2
Cuprinsul
Am optat ca interfața grafică a aplicației să arate simplu la fel cum și funcționează, dar de
asemenea să prezinte un design frumos pentru a fi plăcut ochilor. Pentru a îndeplini sarcinile
propuse, am utilizat:
Plan individual
a) În biblioteca sunt cărţi, care aparţin mai multor domenii de interes pentru cititor. Domeniul
este identificat prin cod şi nume.
b) Fiecare carte este identificată prin: cod carte, titlu, autor, editură, an apariţie, preţ,cod domeniu.
c) Fiecare cititor este identifică prin: cod cititor, nume, adresă, număr de telefon.
7
d) Cărţile pot fi închiriate de cititori. Pentru fiecare închiriere sunt ţinute următoarele evidenţe:
cartea închiriată, cititorul care a închiriat-o, data închirierii ,data la care trebuie să fie returnată,
data la care a fost returnată.
Gestiunea bazei de date se va realiza în aplicaţia C#. În dependență de tematică se vor specifica
criteriile de integritate pentru baza de date, administra obiecte ale bazei de date, stabili planul de
întreținere a bazei de date și moduri de securizare a datelor din baza de date. Informațiile din baza
de date se v-or prelucra la solicitarea utilizatorului folosind meniuri, formulare și controlere,
ținând cont de criteriile specificate în sarcinile individuale.
Afișarea la ecran a informațiilor și printarea acestora se va realiza prin intermediul rapoartelor.
Astfel avem spre realizare 10 funcționalități, respectiv există meniu unde pentru fiecare dintre
funcționalități este butonul său. De asemenea pentru început putem vedea cele 4 tabele din baza
de date, pentru fiecare este creat buton cu denumirea tabelului.
Sarcina 1
Înregistrează datele despre o nouă carte și autorul acestuia.
Fig.12
10
Fig.13
Sarcina 2
Ce cărţi a împrumutat cititorul X în perioada D.
11
Fig.15
Sarcina 3
Lista cărţilor, care sunt împrumutate la data D.
Fig.16
Sarcina 4
Lista cărţilor, care aparţin unui autor X.
12
Fig.17
Sarcina 5
Lista cărţilor din domeniul Y.
Fig.18
Sarcina 6
Lista cărţilor din domeniul X apărute la editura Y.
13
Fig.19
Sarcina 7
Lista cărţilor apărute în anul X la editura Y.
Fig.20
14
Sarcina 8
Exportă într-un fișier MS Word, MS Excel lista cititorilor, care au închiriat cartea X din domeniul
Z la data D.
Fig.21
Fig.22
Sarcina 9
Care sunt cele mai solicitate cărţi, închiriate pe perioada anului şcolar şi cele din perioada
vacanţei?
Fig.25
Sarcina 10
Afișează lista cărților care nu au fost încă returnate si datele personale ale cititorului dat.
Fig.26
16
Concluzie
Stagiul de practică este perioada de testare a cunoștințelor obținute pe parcursul anilor de studii și
aplicarea lor la lucrul asupra sarcinilor individuale. Astfel acumulăm calități bune pentru
dezvoltarea profesională. Pe tot parcursul practicii am avut de realizat o aplicație în C# cu
interfață grafică care gestionează baza de date “Biblioteca”. În dependență de tematică am
specificat criteriile de integritate pentru baza de date “Biblioteca”, am administrat obiecte ale
bazei de date, am stabilit planul de întreținere a bazei de date și moduri de securizare a datelor din
baza de date. Informațiile din baza de date s-au prelucrat la solicitarea utilizatorului folosind
meniuri, formulare și controlere, ținând cont de criteriile specificate în sarcinile individuale.
Afișarea la ecran a informațiilor și printarea acestora realiza prin intermediul rapoartelor.
17
Webografie
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/date-and-time-data-types-and-functions-
transact-sql?view=sql-server-ver15
https://docs.microsoft.com/ru-ru/dotnet/api/system.string.substring?view=net-5.0
https://docs.microsoft.com/ru-ru/dotnet/api/system.char.isdigit?view=net-5.0
https://www.mssqltips.com/sqlservertip/6055/net-exception-handling-for-database-calls-to-sql-
server-with-try-catch-and-finally/
18
Elaboraţi o bază de date, gestiunea căreia se va realiza dintr-o aplicaţie C#. În dependență de
tematică se vor specifica criteriile de integritate pentru baza de date, administra obiecte ale bazei
de date, stabili planul de întreținere a bazei de date și moduri de securizare a datelor din baza de
date. Informațiile din baza de date se v-or prelucra la solicitarea utilizatorului folosind meniuri,
formulare și controlere, ținând cont de următoarele funcţionalităţi:
namespace Biblioteca
{
public partial class Form1 : Form
{
private Form activeForm = null;
public Form1()
{
InitializeComponent();
}
{
label6.Text = "Este aplicat tabelul Cărți";
/* dataGridView1.Refresh();
label5.Visible = false;
label3.Visible = false;
label4.Visible = false;
dataGridView2.Visible = false;
dataGridView3.Visible = false;
dataGridView4.Visible = false;
if (dataGridView1.Visible == true) dataGridView1.Visible = false;
else if (dataGridView1.Visible == false) dataGridView1.Visible = true;
if (label2.Visible == true) label2.Visible = false;
else if (label2.Visible == false) label2.Visible = true;*/
openChildFormInPanel(new Form12());
}
dataGridView2.Visible = false;
dataGridView1.Visible = false;
dataGridView4.Visible = false;
if (dataGridView3.Visible == true) dataGridView3.Visible = false;
else if (dataGridView3.Visible == false) dataGridView3.Visible = true;
if (label4.Visible == true) label4.Visible = false;
else if (label4.Visible == false) label4.Visible = true;*/
openChildFormInPanel(new Form15());
}
}
private void button4_Click(object sender, EventArgs e)
21
{
label6.Text = "Este aplicat Sarcina 1 - Adăugarea unei cărți noi";
openChildFormInPanel(new Form2());
openChildFormInPanel(new Form5());
}
openChildFormInPanel(new Form6());
}
openChildFormInPanel(new Form7());
}
openChildFormInPanel(new Form8());
}
openChildFormInPanel(new Form9());
}
openChildFormInPanel(new Form10());
}
Listingul Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form2 : Form
{
private string codc;
private string titl;
private string autor;
private string editurac;
this.Hide();
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
}
Listingul Form3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form3 : Form
{
private string cititori;
private string period;
24
public Form3()
{
InitializeComponent();
}
}
private void Form3_Load(object sender, EventArgs e)
{
String sql = "Select cod_carte from inchirierea_cartilor where data_impr=" + period + " and
cod_cititor = (select cod_cititor from cititori where nume =" + cititori+");";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@autor", txt);
cmd.ExecuteNonQuery();
con.Close();
}
Listingul Form5
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form5 : Form
{
private string datad;
public Form5()
{
InitializeComponent();
}
String sql = "select cod_carte from Inchirierea_cartilor where Data_impr = " + datad + ";";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@data", txt);
cmd.ExecuteNonQuery();
con.Close();
}
}
catch(Exception)
{
Listingul Form6
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form6 : Form
{
private string autor;
public Form6()
{
InitializeComponent();
}
String sql = "select cod_carte from carti where autor = '" + autor + "';";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
27
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@autor", txt);
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception)
{
Listingul Form 7
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form7 : Form
{
private string domeniu;
public Form7()
{
InitializeComponent();
}
try
28
{
SqlConnection con = new SqlConnection(@"Data Source = .;Initial Catalog = Biblioteca;
Integrated Security = True");
String sql = "select cod_carte from carti where cod_dom = (select cod_dom from domeniu where
den_dom = "+domeniu+");";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@autor", txt);
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception)
{
Listingul Form 8
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form8 : Form
{
private string domeniul;
private string editura;
public Form8()
{
InitializeComponent();
29
}
String sql = "select cod_carte from carti where editura = "+editura+" and cod_dom = (select
cod_dom from domeniu where den_dom = "+domeniul+");";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@autor", txt);
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception)
{
}
30
}
}
}
Listingul Form 9
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form9 : Form
{
private string anul;
private string editura;
public Form9()
{
InitializeComponent();
}
String sql = "select cod_carte from carti where editura = " + editura + " and anul ="+anul+";";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception)
{
Listingul Form10
using ClosedXML.Excel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
namespace Biblioteca
{
public partial class Form10 : Form
{
private string cartea;
private string dom;
private string data;
public Form10()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
cartea = "'" + textBox1.Text + "'";
}
try
{
SqlConnection con = new SqlConnection(@"Data Source = .;Initial Catalog = Biblioteca;
Integrated Security = True");
String sql = "select cod_cititor from Inchirierea_cartilor where Data_impr ="+data+" and
Cod_carte=(select cod_carte from carti where titlu = "+cartea+" and cod_dom = (select cod_dom from domeniu
where den_dom = "+dom+")); ";
con.Open();
SqlCommand cmd1 = new SqlCommand(sql, con);
string txt = cmd1.ExecuteScalar().ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@autor", txt);
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception ex)
{
this.Hide();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
public void Export_Data_To_Word(DataGridView DGV, string filename)
{
if (DGV.Rows.Count != 0)
{
int RowCount = DGV.Rows.Count;
int ColumnCount = DGV.Columns.Count;
Object[,] DataArray = new object[RowCount + 1, ColumnCount + 1];
//add rows
int r = 0;
for (int c = 0; c <= ColumnCount - 1; c++)
{
for (r = 0; r <= RowCount - 1; r++)
{
DataArray[r, c] = DGV.Rows[r].Cells[c].Value;
} //end row loop
} //end column loop
//page orintation
oDoc.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape;
}
34
}
//table format
oRange.Text = oTemp;
oRange.Select();
oDoc.Application.Selection.Tables[1].Select();
oDoc.Application.Selection.Tables[1].Rows.AllowBreakAcrossPages = 0;
oDoc.Application.Selection.Tables[1].Rows.Alignment = 0;
oDoc.Application.Selection.Tables[1].Rows[1].Select();
oDoc.Application.Selection.InsertRowsAbove(1);
oDoc.Application.Selection.Tables[1].Rows[1].Select();
//table style
//oDoc.Application.Selection.Tables[1].set_Style("Grid Table 4 - Accent 5");
oDoc.Application.Selection.Tables[1].Rows[1].Select();
oDoc.Application.Selection.Cells.VerticalAlignment =
Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
//header text
foreach (Word.Section section in oDoc.Application.ActiveDocument.Sections)
{
Word.Range headerRange =
section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange, Word.WdFieldType.wdFieldPage);
headerRange.Text = "Lista cititorilor";
headerRange.Font.Size = 16;
headerRange.ParagraphFormat.Alignment =
Word.WdParagraphAlignment.wdAlignParagraphCenter;
}
//NASSIM LOUCHANI
}
}
private void button3_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
35
sfd.Filter = "Word Documents (*.docx)|*.docx";
sfd.FileName = "export.docx";
if (sfd.ShowDialog() == DialogResult.OK)
{
Export_Data_To_Word(dataGridView1, sfd.FileName);
}
}
}
}
}
Listingul Form11
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form11 : Form
{
public Form11()
{
InitializeComponent();
}
con.Open();
36
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception ex)
{
Listingul Form12
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 Biblioteca
{
public partial class Form12 : Form
{
public Form12()
{
InitializeComponent();
}
Listingul Form13
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form13 : Form
{
public Form13()
{
InitializeComponent();
}
cmd.ExecuteNonQuery();
con.Close();
}
using (SqlCommand cmd = new SqlCommand("Sarcina99", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
con.Close();
}
}
catch (Exception)
{
Litingul Form14
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 Biblioteca
{
public partial class Form14 : Form
{
public Form14()
{
InitializeComponent();
}
}
}
}
Listingul Form15
using System;
using System.Collections.Generic;
using System.ComponentModel;
39
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblioteca
{
public partial class Form15 : Form
{
public Form15()
{
InitializeComponent();
}
}
}
}
Listingul Form16
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 Biblioteca
{
public partial class Form16 : Form
{
public Form16()
{
InitializeComponent();
}
}
40
private void button2_Click(object sender, EventArgs e)
{
this.Hide();
}
}
}