WINDOWS FORM APLIKACIJA U C#(SHARP) KOJA KORISTI SQL SERVER BAZU PODATAKA-PRIMER SALON AUTOMOBILA
U ovom članku će biti opisan isti primer kao u prethodnom članku "Salon Automobila", ali sada sa upotrebom SQLServer baze podataka.
Da bi se razvila aplikacija u C# koja komunicira sa SQL Server bazom podataka, potrebni su sledeći alati i resursi:
- Razvojno okruženje (IDE):
- Visual Studio: Ovo je najčešće korišćeno okruženje za razvoj C# aplikacija. Postoji besplatna verzija pod nazivom Visual Studio Community koja je pogodna za individualne programere, open-source projekte i male timove.
- .NET Framework ili .NET Core:
- Da biste koristili C#, potrebno je imati instaliran .NET Framework ili .NET Core. .NET Core je savremena platforma koja omogućava razvoj multiplatformskih aplikacija, dok je .NET Framework tradicionalnija verzija.
- SQL Server:
- SQL Server (Express Edition): Ovo je besplatna verzija SQL Server-a koja se može koristiti za razvoj i male aplikacije. Takođe, možete koristiti lokalnu instancu SQL Server-a ili SQL Server Management Studio (SSMS) za upravljanje bazama podataka.
- ADO.NET ili Entity Framework:
- ADO.NET: Ovaj alat omogućava direktnu komunikaciju između aplikacije i SQL Server-a putem SQL upita.
- Entity Framework: Ovo je ORM (Object-Relational Mapper) alat koji pojednostavljuje interakciju sa bazama podataka, omogućavajući vam da radite sa podacima koristeći C# objekte umesto direktnih SQL upita.
- SQL Server Management Studio (SSMS):
- Ovaj alat se koristi za upravljanje SQL Server bazama podataka, omogućava izvršavanje SQL upita, kreiranje i uređivanje tabela, kao i administraciju servera.
- Konekcioni string:
- Da biste se povezali sa SQL Server bazom podataka, potrebno je konfigurisati konekcioni string u vašoj aplikaciji koji sadrži informacije kao što su naziv servera, ime baze podataka, korisničko ime i lozinku.
Povezivanje sa SQL Serverom iz c# windows form aplikacije
Evo jednostavnog primera kako se može povezati sa SQL Server-om iz C# aplikacije koristeći ADO.NET:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("Uspesno povezivanje na bazu podataka!");
// Ovde možete dodati SQL upite i operacije
}
}
}
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("Uspesno povezivanje na bazu podataka!");
// Ovde možete dodati SQL upite i operacije
}
}
}
Potrebni resursi za kreiranje aplikacije:
Resursi:Sa ovim alatima i resursima, bićete spremni za razvoj C# aplikacija koje komuniciraju sa SQL Server bazom podataka.
Provera da li je ADO.NET ili Entity Framework već instaliran
Da biste proverili da li su ADO.NET ili Entity Framework instalirani u Visual Studio 2019 Community, možete slediti ove korake:
Proveravanje ADO.NETADO.NET je deo .NET Framework-a, tako da bi trebao biti automatski uključen sa instalacijom Visual Studija. Da biste proverili da li je ADO.NET dostupan:
Proveravanje ADO.NETADO.NET je deo .NET Framework-a, tako da bi trebao biti automatski uključen sa instalacijom Visual Studija. Da biste proverili da li je ADO.NET dostupan:
- Otvorite Visual Studio .
- Kreirajte novi projekat ili otvorite postojeći.
- U "Solution Explorer"-u, desni klik na projekat i izaberite "Add" > "New Item...".
- U prozoru koji se otvori, izaberite "Class" i dodajte novu klasu.
- U klasi pokušajte da dodate using System.Data.SqlClient;. Ako ne dobijete grešku, ADO.NET je dostupan.
- Otvorite Visual Studio .
- Otvorite svoj projekat.
- U "Solution Explorer"-u, desni klik na projekat i izaberite "Manage NuGet Packages...".
- U prozoru koji se otvori, idite na karticu "Installed".
- Proverite da li je Entity Framework ili Entity Framework Core na listi instaliranih paketa.
- U "Manage NuGet Packages..." prozoru, idite na karticu "Browse".
- U pretrazi upišite "Entity Framework" ili "Entity Framework Core".
- Izaberite paket koji želite i kliknite na "Install".
Proveravanje instalacije SQL Server-a
Da biste proverili da li je SQL Server instaliran:
- Otvorite "Control Panel" (Upravljačka tabla) na Windows-u.
- Idite na Programs and Features (Programi i funkcije).
- Potražite Microsoft SQL Server na listi instaliranih programa.
Instalacija SQL Server-a i SSMS
Ako SQL Server nije instaliran, možete ga preuzeti:
Primer aplikacije "Salon Automobila" koristeći SQL Server umesto MySQL-a.
U ovom primeru koristićemo Windows Forms aplikaciju u C# koja će omogućiti unos podataka o automobilima u SQL Server bazu, kao i prikaz tih podataka u DataGridView kontroli.
Kreiranje SQL Server baze podataka i tabele
Prvo, treba kreirati SQL Server bazu podataka i tabelu za automobile. Može se koristiti sledeći SQL upit u SQL Server Management Studio (SSMS):
CREATE DATABASE AutoSalon;
GO
USE AutoSalon;
GO
CREATE TABLE Cars(
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);
GO
USE AutoSalon;
GO
CREATE TABLE Cars(
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);
Kreiranje nove Windows Forms aplikacije
Kreiranje nove Windows Forms aplikacije
Da biste komunicirali sa SQL Server-om, instalirajte System.Data.SqlClient paket:
- Otvorite Visual Studio i kreirajte novi projekat pod nazivom AutoSalonApp.
- Na formi postavite:
- 4 Label kontrole za nazive atributa: Marka, Model, Godina, Cena.
- 4 TextBox kontrole za unos podataka (txtCarBrand, txtModel, txtYear, txtPrice).
- Dugme za unos (btnAddCar).
- DataGridView kontrolu za prikaz podataka (dataGridView1).
Da biste komunicirali sa SQL Server-om, instalirajte System.Data.SqlClient paket:
- Otvorite NuGet Package Manager u Visual Studio.
- Potražite i instalirajte System.Data.SqlClient.
Pogledajmo na sledećoj slici kako ova forma treba da izgleda:
Kod za Form1.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace AutoSalonApp
{
public partial class Form1 : Form
{
private SqlConnection _connection;
public Form1()
{
InitializeComponent();
CreateDatabaseAndTable();
LoadCars();
}
private void CreateDatabaseAndTable()
{
string connectionString = @"Server=YOUR_SERVER_NAME;Integrated Security=true;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'AutoSalon') CREATE DATABASE AutoSalon;", connection);
command.ExecuteNonQuery();
connection.ChangeDatabase("AutoSalon");
command = new SqlCommand(@"IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Cars')
CREATE TABLE Cars (
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);", connection);
command.ExecuteNonQuery();
}
}
private void LoadCars()
{
string query = "SELECT * FROM Cars";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, _connection))
{
DataTable carsTable = new DataTable();
adapter.Fill(carsTable);
dataGridView1.DataSource = carsTable;
}
}
private void btnAddCar_Click(object sender, EventArgs e)
{
string brand = txtCarBrand.Text;
string model = txtModel.Text;
int year = int.Parse(txtYear.Text);
decimal price = decimal.Parse(txtPrice.Text);
string insertQuery = "INSERT INTO Cars (CarBrand, Model, Year, Price) VALUES (@CarBrand, @Model, @Year, @Price)";
using (SqlCommand command = new SqlCommand(insertQuery, _connection))
{
command.Parameters.AddWithValue("@CarBrand", brand);
command.Parameters.AddWithValue("@Model", model);
command.Parameters.AddWithValue("@Year", year);
command.Parameters.AddWithValue("@Price", price);
command.ExecuteNonQuery();
MessageBox.Show("Vozilo dodato uspešno!");
LoadCars(); // Refresh the DataGridView
}
}
}
}
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace AutoSalonApp
{
public partial class Form1 : Form
{
private SqlConnection _connection;
public Form1()
{
InitializeComponent();
CreateDatabaseAndTable();
LoadCars();
}
private void CreateDatabaseAndTable()
{
string connectionString = @"Server=YOUR_SERVER_NAME;Integrated Security=true;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'AutoSalon') CREATE DATABASE AutoSalon;", connection);
command.ExecuteNonQuery();
connection.ChangeDatabase("AutoSalon");
command = new SqlCommand(@"IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Cars')
CREATE TABLE Cars (
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);", connection);
command.ExecuteNonQuery();
}
}
private void LoadCars()
{
string query = "SELECT * FROM Cars";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, _connection))
{
DataTable carsTable = new DataTable();
adapter.Fill(carsTable);
dataGridView1.DataSource = carsTable;
}
}
private void btnAddCar_Click(object sender, EventArgs e)
{
string brand = txtCarBrand.Text;
string model = txtModel.Text;
int year = int.Parse(txtYear.Text);
decimal price = decimal.Parse(txtPrice.Text);
string insertQuery = "INSERT INTO Cars (CarBrand, Model, Year, Price) VALUES (@CarBrand, @Model, @Year, @Price)";
using (SqlCommand command = new SqlCommand(insertQuery, _connection))
{
command.Parameters.AddWithValue("@CarBrand", brand);
command.Parameters.AddWithValue("@Model", model);
command.Parameters.AddWithValue("@Year", year);
command.Parameters.AddWithValue("@Price", price);
command.ExecuteNonQuery();
MessageBox.Show("Vozilo dodato uspešno!");
LoadCars(); // Refresh the DataGridView
}
}
}
}
Objašnjenje koda
Kada se pokrene aplikacija i doda nekoliko automobila, podaci će biti prikazani u DataGridView kontroli.
- Konekcija: Konekcija sa SQL Server-om se uspostavlja koristeći SqlConnection. Treba podesiti YOUR_SERVER_NAME na naziv SQL Server instance.
- Kreiranje baze i tabele: Metoda CreateDatabaseAndTable kreira bazu AutoSalon i tabelu Cars ako ne postoje.
- Učitavanje podataka: Metoda LoadCars učitava sve automobile iz tabele Cars i prikazuje ih u DataGridView kontroli.
- Dugme za dodavanje: U metodi btnAddCar_Click, prikupljaju se podaci iz TextBox kontrola i dodaju se u tabelu Cars. Nakon uspešnog umetanja, poruka se prikazuje korisniku.
Kada se pokrene aplikacija i doda nekoliko automobila, podaci će biti prikazani u DataGridView kontroli.
Dinamičko kreiranje baze podataka
U prethodno opisanom primeru se podrazumeva da je baza kreirana, npr. pomoću SQL Server Management Studio-a(SSMS) alata. Međutim, ako bi smo želeli da kreiranje baze bude dinamički, tj. potpuno kroz aplikaciju, onda bi to uradili na sledeći način:
Da bi dinamički kreirao bazu podataka CarShowroom u C#, može se koristiti SqlConnection za uspostavljanje veze sa SQL Serverom bez navođenja baze. Nakon toga, mož seš izvršiti SQL upit za kreiranje baze podataka. Evo kako bi to moglo izgledati:
- Definisati konekcioni string bez naziva baze. Ovo će omogućiti povezivanje na server i izvršenje naredbe za kreiranje baze.
- Koristiti SQL upit za kreiranje baze. Ako baza ne postoji, izvršiti upit za njeno kreiranje.
using System;
using System.Data;
using System.Data.SqlClient;
namespace CarShowroomApp
{
class Program
{
static void Main(string[] args)
{
// Konekcioni string bez naziva baze
string connectionStringWithoutDatabase = @"Server=YOUR_SERVER_NAME;Integrated Security=true;";
using (SqlConnection connection = new SqlConnection(connectionStringWithoutDatabase))
{
try
{
connection.Open();
// SQL upit za kreiranje baze podataka ako ne postoji
string createDatabaseQuery = "IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'CarShowroom') " +
"BEGIN " +
"CREATE DATABASE CarShowroom; " +
"END";
SqlCommand command = new SqlCommand(createDatabaseQuery, connection);
command.ExecuteNonQuery();
// Promeni konekcioni string da uključuje novu bazu
string connectionStringWithDatabase = @"Server=YOUR_SERVER_NAME;Database=CarShowroom;Integrated Security=true;";
// Sada se može koristiti connectionStringWithDatabase za dalje operacije
}
catch (Exception ex)
{
Console.WriteLine("Došlo je do greške: " + ex.Message);
}
}
}
}
}
using System.Data;
using System.Data.SqlClient;
namespace CarShowroomApp
{
class Program
{
static void Main(string[] args)
{
// Konekcioni string bez naziva baze
string connectionStringWithoutDatabase = @"Server=YOUR_SERVER_NAME;Integrated Security=true;";
using (SqlConnection connection = new SqlConnection(connectionStringWithoutDatabase))
{
try
{
connection.Open();
// SQL upit za kreiranje baze podataka ako ne postoji
string createDatabaseQuery = "IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'CarShowroom') " +
"BEGIN " +
"CREATE DATABASE CarShowroom; " +
"END";
SqlCommand command = new SqlCommand(createDatabaseQuery, connection);
command.ExecuteNonQuery();
// Promeni konekcioni string da uključuje novu bazu
string connectionStringWithDatabase = @"Server=YOUR_SERVER_NAME;Database=CarShowroom;Integrated Security=true;";
// Sada se može koristiti connectionStringWithDatabase za dalje operacije
}
catch (Exception ex)
{
Console.WriteLine("Došlo je do greške: " + ex.Message);
}
}
}
}
}
Objašnjenje:
- Konekcioni string bez naziva baze: U ovom primeru se koristi konekcioni string bez navođenja baze, što omogućava povezivanje sa SQL Serverom.
- SQL upit za kreiranje baze: Upit proverava da li baza CarShowroom već postoji, i ako ne postoji, kreira je.
- Promena konekcionog stringa: Nakon kreiranja baze, može se promeniti konekcioni string da uključuje naziv nove baze, što će omogućiti dalju interakciju sa njom.
Kompletna aplikacija
Ovaj kod prikazuje kako koristiti Windows Forms aplikaciju u kombinaciji sa SQL Server bazom podataka za upravljanje podacima o automobilima. Aplikacija omogućava kreiranje baze podataka i tabele, kao i dodavanje novih automobila putem GUI forme. Posle pokretanja i ubacivanja podataka u bazu, forma treba da izgleda kao na sledećoj slici:
U nastavku je prikazana poboljšana verzija kompletne aplikacije, sa objašnjenjem koda. Na sledećoj slici se može videti namespaces koji se koriste, deklaracija konekcije i konstruktor.
Prva metoda koja se poziva pored InitializeComponent koja je automatski generisana je metoda InitializeConnection i koja služi za kreiranje i otvaranje konekcije ka bazi podataka, što se može videti na sledećoj slici:
Na istoj slici se vidi i metoda LoadCars() koja učitava podatke o automobilima iz baze. Metoda koja se poziva posle otvaranja konekcije je metoda createDatabaseAndTable() i koja služi da kreira bazu podataka, ako već nije kreirana, a zatim da kreira tabelu za smeštaj podataka o automobilima, ali takođe, pod uslovom da već nije kreirana. Ova metoda se može videti na sledećoj slici:
Kao reakcija klika dugmeta se poziva metoda buttonAdd_Click() koja služi da pokupi sa forme podatke i unese ih u bazu. Metoda se može videti na sledećoj slici:
Objašnjenje koda Windows Forms aplikacije za upravljanje bazom podataka automobila
1. Biblioteke i Namespaces
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
Ove biblioteke omogućavaju korišćenje osnovnih .NET funkcionalnosti, SQL konekcije, manipulaciju podacima i kreiranje grafičkog korisničkog interfejsa (GUI) putem Windows Forms.
2. Klasa Form1 i Privatna Varijabla
2. Klasa Form1 i Privatna Varijabla
public partial class Form1 : Form
{
private SqlConnection _connection;
{
private SqlConnection _connection;
Klasa Form1 nasleđuje Form, što omogućava da ova klasa predstavlja Windows Forms prozor. Privatna varijabla _connection služi za držanje SQL konekcije prema SQL Server bazi podataka.
3. Konstruktor Klase
3. Konstruktor Klase
public Form1()
{
InitializeComponent();
InitializeConnection();
CreateDatabaseAndTable();
LoadCars();
}
{
InitializeComponent();
InitializeConnection();
CreateDatabaseAndTable();
LoadCars();
}
Konstruktor poziva tri metode:
- InitializeConnection(): Otvara konekciju prema SQL Server bazi.
- CreateDatabaseAndTable(): Kreira bazu podataka i tabelu ako one ne postoje.
- LoadCars(): Učitava podatke o automobilima iz tabele i prikazuje ih u DataGridView kontrolama.
private void InitializeConnection()
{
_connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=CarShowroom;User Id=sa;Password=sapassword;");
_connection.Open();
}
{
_connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=CarShowroom;User Id=sa;Password=sapassword;");
_connection.Open();
}
Ova metoda inicijalizuje SQL konekciju pomoću SQL Server Express instance i otvara je. Parametri u SqlConnection specifikuju server, bazu podataka, korisničko ime i lozinku.
5. Metoda LoadCars()
5. Metoda LoadCars()
private void LoadCars()
{
if (_connection == null || _connection.State == ConnectionState.Closed)
{
_connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=CarShowroom;User Id=sa;Password=sapassword;");
_connection.Open();
}
string query = "SELECT * FROM Cars";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, _connection))
{
DataTable carsTable = new DataTable();
adapter.Fill(carsTable);
dataGridView1.DataSource = carsTable;
}
}
{
if (_connection == null || _connection.State == ConnectionState.Closed)
{
_connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=CarShowroom;User Id=sa;Password=sapassword;");
_connection.Open();
}
string query = "SELECT * FROM Cars";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, _connection))
{
DataTable carsTable = new DataTable();
adapter.Fill(carsTable);
dataGridView1.DataSource = carsTable;
}
}
Ova metoda proverava stanje konekcije i otvara je ako je zatvorena. Zatim, koristi SQL upit "SELECT * FROM Cars" za dobijanje svih podataka iz tabele Cars i koristi SqlDataAdapter za punjenje DataTable objekta, koji se postavlja kao izvor podataka za DataGridView kontrolu.
6. Metoda CreateDatabaseAndTable()
6. Metoda CreateDatabaseAndTable()
private void CreateDatabaseAndTable()
{
try
{
string createDatabaseQuery = @"IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'CarShowroom')
BEGIN
CREATE DATABASE CarShowroom;
END";
SqlCommand createDbCommand = new SqlCommand(createDatabaseQuery, _connection);
createDbCommand.ExecuteNonQuery();
_connection.ChangeDatabase("CarShowroom");
createDbCommand = new SqlCommand(@"IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Cars')
CREATE TABLE Cars (
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);", _connection);
createDbCommand.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show("Greška pri kreiranju baze ili tabele: " + ex.Message);
}
}
{
try
{
string createDatabaseQuery = @"IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'CarShowroom')
BEGIN
CREATE DATABASE CarShowroom;
END";
SqlCommand createDbCommand = new SqlCommand(createDatabaseQuery, _connection);
createDbCommand.ExecuteNonQuery();
_connection.ChangeDatabase("CarShowroom");
createDbCommand = new SqlCommand(@"IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Cars')
CREATE TABLE Cars (
Id INT IDENTITY(1,1) PRIMARY KEY,
CarBrand NVARCHAR(50),
Model NVARCHAR(50),
Year INT,
Price DECIMAL(10, 2)
);", _connection);
createDbCommand.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show("Greška pri kreiranju baze ili tabele: " + ex.Message);
}
}
Metoda prvo kreira bazu podataka CarShowroom ako ne postoji koristeći SQL upit sa IF NOT EXISTS. Nakon toga, menja konekciju tako da ukazuje na novu bazu i kreira tabelu Cars sa kolonama Id, CarBrand, Model, Year, i Price, ukoliko ne postoji.
7. Metoda buttonAdd_Click()
7. Metoda buttonAdd_Click()
private void buttonAdd_Click(object sender, EventArgs e)
{
string brand = textBoxBrand.Text;
string model = textBoxModel.Text;
if (!int.TryParse(textBoxYear.Text, out int year))
{
MessageBox.Show("Unesite validnu godinu.");
return;
}
if (!decimal.TryParse(textBoxPrice.Text, out decimal price))
{
MessageBox.Show("Unesite validnu cenu.");
return;
}
string insertQuery = "INSERT INTO Cars (CarBrand, Model, Year, Price) VALUES (@CarBrand, @Model, @Year, @Price)";
using (var insertCommand = new SqlCommand(insertQuery, _connection))
{
insertCommand.Parameters.AddWithValue("@CarBrand", brand);
insertCommand.Parameters.AddWithValue("@Model", model);
insertCommand.Parameters.AddWithValue("@Year", year);
insertCommand.Parameters.AddWithValue("@Price", price);
try
{
insertCommand.ExecuteNonQuery();
MessageBox.Show("Vozilo dodato uspešno!");
LoadCars(); // Osvježi prikaz nakon dodavanja
}
catch (Exception ex)
{
MessageBox.Show("Greška pri dodavanju vozila: " + ex.Message);
}
}
}
{
string brand = textBoxBrand.Text;
string model = textBoxModel.Text;
if (!int.TryParse(textBoxYear.Text, out int year))
{
MessageBox.Show("Unesite validnu godinu.");
return;
}
if (!decimal.TryParse(textBoxPrice.Text, out decimal price))
{
MessageBox.Show("Unesite validnu cenu.");
return;
}
string insertQuery = "INSERT INTO Cars (CarBrand, Model, Year, Price) VALUES (@CarBrand, @Model, @Year, @Price)";
using (var insertCommand = new SqlCommand(insertQuery, _connection))
{
insertCommand.Parameters.AddWithValue("@CarBrand", brand);
insertCommand.Parameters.AddWithValue("@Model", model);
insertCommand.Parameters.AddWithValue("@Year", year);
insertCommand.Parameters.AddWithValue("@Price", price);
try
{
insertCommand.ExecuteNonQuery();
MessageBox.Show("Vozilo dodato uspešno!");
LoadCars(); // Osvježi prikaz nakon dodavanja
}
catch (Exception ex)
{
MessageBox.Show("Greška pri dodavanju vozila: " + ex.Message);
}
}
}
Ova metoda reaguje na klik dugmeta za dodavanje novog vozila. Podaci se uzimaju iz tekstualnih polja, i pomoću TryParse se proverava validnost godine i cene. Zatim, SQL upit za umetanje unosi podatke o automobilu u tabelu. Ako je unos uspešan, prikazuje se poruka i prikaz automobila se osvežava.
Zaključak
Ovaj kod predstavlja kompletnu aplikaciju koja koristi Windows Forms i SQL Server za upravljanje bazom podataka automobila. Efikasno koristi SQL upite za kreiranje baze, tabele, učitavanje i umetanje podataka, uz minimalne provere validnosti unosa.
Zaključak
Ovaj kod predstavlja kompletnu aplikaciju koja koristi Windows Forms i SQL Server za upravljanje bazom podataka automobila. Efikasno koristi SQL upite za kreiranje baze, tabele, učitavanje i umetanje podataka, uz minimalne provere validnosti unosa.
Prethodno
|< Primer sa MySql bazom podataka |