Kreiraj formu kao na slici (dodaj sledeće komponente: 1 TabControl, 1 DataGridView, 1 Chart, 2 Label, 2 TextBox, 1 Button):
U kontrolama DataGridView i Chart potrebno je prikazati pet najskupljih proizvoda iz tabele Products u bazi podataka Northwind pomoću SQL upita:
SET ROWCOUNT 5
SELECT ProductName, UnitPrice
FROM Products
ORDER BY UnitPrice DESC
Klikom na dugme Dodaj potrebno je dodati slog u tabelu Products koji se sastoji od ProductName i UnitPrice pomoću SQL upita:
INSERT INTO Products (ProductName,UnitPrice) VALUES (@pName,@uPrice)
gde je @pName podatak tipa string iz kontrole textBox1 i @uPrice podatak tipa double iz kontrole textBox2.
Klikom na tab O programu u kontroli RichTextBox prikazati tekst kao na slici (umesto Radlovački Velimir napišite vaše prezime i ime)
i osigurati da korisnik aplikacije ne može da menja ili obriše taj tekst. Klikom na dugme Nazad prikazati tabPage1.
Klikom na tab Izlaz zatvara se aplikacija.
NAPOMENA: Za trojku nije potrebno kreirati klase niti uskladištene procedure! Umesto TabControl možete dobiti MenuStrip ili ToolStrip, pa umesto tabPage2 onda treba prikazati modalno Form2 sa podacima o školi i učeniku.
REŠENJE
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient; // Ovo sam dodao zbog SQL komandi
using System.Windows.Forms.DataVisualization.Charting; // Ovo sam dodao zbog grafikona
namespace ZadatakZaTrojku
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Deklarišem promenljive za adapter, konekciju, komandu i tabelu.
SqlDataAdapter da;
SqlConnection con = new SqlConnection("Data Source=MAINFRAME\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");
SqlCommand cmd;
DataTable dt;
private void PrikaziTabelu() // Otvaram konekciju, kreiram tabelu, popunjavam je preko adaptera
{ // podacima iz baze i prikazujem u dataGridView
con.Open();
dt = new DataTable();
da = new SqlDataAdapter("SET ROWCOUNT 5 SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC", con);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
}
private void NacrtajGrafikon() // Kreiram tabelu sa dve kolone i popunjavam ih podacima iz dataGridView1,
{ // pa crtam stubičasti grafikon na osnovu tih podataka
dt = new DataTable();
dt.Columns.Add("kolona1");
dt.Columns.Add("kolona2");
foreach (DataGridViewRow red in dataGridView1.Rows)
{
int prvaKolona = 0;
int drugaKolona = 1;
dt.Rows.Add(red.Cells[prvaKolona].Value, red.Cells[drugaKolona].Value);
}
chart1.DataSource = dt;
chart1.Series["Cene"].ChartType = SeriesChartType.Column;
chart1.Series["Cene"].XValueMember = "kolona1";
chart1.Series["Cene"].YValueMembers = "kolona2";
chart1.Series["Cene"].IsValueShownAsLabel = true;
}
private void Form1_Load(object sender, EventArgs e) // Prilikom učitavanja pozivam dve metode iznad
{ // da bi popunio dataGridView i nacrtao grafikon
PrikaziTabelu();
NacrtajGrafikon();
}
private void button1_Click(object sender, EventArgs e) // Dodajem slog u bazu pomoću SQL upita, osvežavam podatke u
{ // dataGridView i na grafikonu i čistim sadržaj tekst boksova
con.Open();
cmd = new SqlCommand("INSERT INTO Products (ProductName, UnitPrice) VALUES (@pName, @uPrice)", con);
cmd.Parameters.AddWithValue("@pName", Convert.ToString(textBox1.Text));
cmd.Parameters.AddWithValue("@uPrice", Convert.ToDouble(textBox2.Text));
cmd.ExecuteNonQuery();
con.Close();
PrikaziTabelu();
NacrtajGrafikon();
textBox1.Text = "";
textBox2.Text = "";
}
private void tabPage3_Enter(object sender, EventArgs e) // Zatvaram aplikaciju
{
Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabPage1;
}
}
}