...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\frmLatihan1.
cs 1
1 using System;
2 using [Link];
3 using [Link];
4 using [Link];
5 using [Link];
6 using [Link];
7 using [Link];
8 using [Link];
9 using [Link];
10 using [Link];
11
12 namespace Minggu11
13 {
14 public partial class frmLatihan1 : Form
15 {
16 public frmLatihan1()
17 {
18 InitializeComponent();
19
20 [Link] = [Link]; //Atur posisi
mulai Form ke tengah
21 }
22
23 SqlConnection con; //Koneksi / Jalan
24 string constr; //Database / Alamat
25 SqlDataAdapter da; //Mengambil data dari database ke Dataset atau
mengirim data dari DataSet ke database / Kurir
26 SqlCommand cmd; //Menyimpan query SQL yang akan dieksekusi / Paket
27 string query; //Menyimpan query SQL / Isi paket
28 DataSet ds; //Menyimpan data hasil query / menyimpan paket
29 DataRow dr; //Baris data dalam DataSet
30 DataColumn[] dc = new DataColumn[1]; //Menyimpan 1 kolom yang akan
dijadikan Primary Key
31 SqlCommandBuilder cb; //Perintah untuk manipulasi data (tambah, ubah,
hapus)
32
33 private void Koneksi()
34 {
35 //Windows Authentication
36 try //Code yang mau dieksekusi
37 {
38 constr = "Data Source = localhost; Initial Catalog = Teori;
Integrated Security = true" ; //Alamat / Database yang mau
dihubungkan
39 con = new SqlConnection(constr); //Jalan + Alamat
40 [Link](); //Membuka koneksi
41 }
42 catch (Exception ex) //Jika error
43 {
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 2
44 [Link]([Link], "Koneksi", [Link],
[Link]); //Munculkan pesan errornya
45 }
46 }
47
48 private void LoadData()
49 {
50 ds = new DataSet(); //Tempat menyimpan data / menyimpan paket
51 query = "SELECT * FROM [Link]" ; //Perintah / Isi paket
52 cmd = new SqlCommand(query, con); //Paket yang sudah disi perintah
lengkap dengan jalan + alamat
53 da = new SqlDataAdapter(cmd); //Kurir + Paket yang sudah disi
perintah lengkap dengan jalan + alamat
54 [Link](ds, "[Link]"); //Kurir menyimpan data ke DataSet
tabel [Link]
55 dc[0] = [Link]["[Link]"].Columns[0]; //Nilai di array
dc[0] adalah CustomerID
56 [Link]["[Link]"].PrimaryKey = dc; //PK di DataSet tabel
[Link] = CustomerID (ambil nilai dari dc)
57 }
58
59 private void LoadDataUrut()
60 {
61 ds = new DataSet(); //Tempat menyimpan data / menyimpan paket
62 query = "SELECT * FROM [Link] ORDER BY " +
[Link]() + " " +
[Link](); //Perintah / Isi paket
63 cmd = new SqlCommand(query, con); //Paket yang sudah disi perintah
lengkap dengan jalan + alamat
64 da = new SqlDataAdapter(cmd); //Kurir + Paket yang sudah disi
perintah lengkap dengan jalan + alamat
65 [Link](ds, "[Link]"); //Kurir menyimpan data ke DataSet
tabel [Link]
66 dc[0] = [Link]["[Link]"].Columns[0]; //Nilai di array
dc[0] adalah CustomerID
67 [Link]["[Link]"].PrimaryKey = dc; //PK di DataSet tabel
[Link] = CustomerID (ambil nilai dari dc)
68 }
69
70 private void LoadDataFilter()
71 {
72 ds = new DataSet(); //Tempat menyimpan data / menyimpan paket
73 query = "SELECT * FROM [Link] WHERE CustomerID = '" +
[Link] + "'"; //Perintah / Isi paket
74 cmd = new SqlCommand(query, con); //Paket yang sudah disi perintah
lengkap dengan jalan + alamat
75 da = new SqlDataAdapter(cmd); //Kurir + Paket yang sudah disi
perintah lengkap dengan jalan + alamat
76 [Link](ds, "[Link]"); //Kurir menyimpan data ke DataSet
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 3
tabel [Link]
77 dc[0] = [Link]["[Link]"].Columns[0]; //Nilai di array
dc[0] adalah CustomerID
78 [Link]["[Link]"].PrimaryKey = dc; //PK di DataSet tabel
[Link] = CustomerID (ambil nilai dari dc)
79 }
80
81 private void UpdateData()
82 {
83 //Mengupdate perubahan data ke database
84 cb = new SqlCommandBuilder(da); //Membuat command builder
berdasarkan SqlDataAdapter
85 da = [Link]; //Atur ulang SqlDataAdapter. [Link]
akan otomatis berisi referensi ke da yang diperbarui dengan
perintah INSERT, UPDATE, DELETE.
86 [Link]([Link]["[Link]"]); //Memperbarui data di
database, Dengan [Link](), perubahan pada DataSet (ds) dapat
diterapkan langsung ke database.
87 }
88
89 private void TampilData()
90 {
91 [Link] = [Link][ "[Link]"]; //Sumber data
diambil dari tabel [Link] pada DataSet
92 [Link][0].HeaderText = "Customer ID"; //Judul Kolom 1
93 [Link][1].HeaderText = "Company Name"; //Judul Kolom 2
94 [Link] = false; //Tidak bisa tambahkan baris
95 [Link] = true; //Tidak bisa edit
96
97 [Link] =
DataGridViewAutoSizeColumnsMode .Fill; //Ukuran kolom memenuhi
ukuran dgv
98 [Link][0].Width = 200; //Lebar kolom 1 = 200
99
100 [Link] = [Link](); //Menampilkan
Jumlah Record pada lblJumlahRecord
101 }
102
103 private void Kosong()
104 {
105 //Bersihkan TextBox
106 [Link] = [Link];
107 [Link] = [Link];
108
109 //Kursor fokus ke txtCustomerID
110 [Link]();
111 }
112
113 private void frmLatihan1_Load(object sender, EventArgs e)
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 4
114 {
115 //Menampilkan data perlu hubungkan ke DB, Tarik Data, dan Tampil
Data
116 Koneksi();
117 LoadData();
118 TampilData();
119
120 //Menambahkan item pada cboUrut
121 [Link] = [Link];
122 [Link]("CustomerID");
123 [Link]("CompanyName");
124
125 //Menambahkan item pada cboAscDesc
126 [Link] = [Link];
127 [Link]("Asc");
128 [Link]("Desc");
129 }
130
131 private void btnTambah_Click(object sender, EventArgs e)
132 {
133 dr = [Link]["[Link]"].[Link]([Link]); //
Cari baris berdasarkan txtCustomerID yang diinput pengguna
134
135 if (dr == null) //Jika Baris yang dicari berdasarkan txtCustomerID
belum ada
136 {
137 dr = [Link]["[Link]"].NewRow(); //Sediakan baris
baru
138 dr[0] = [Link]; //Baris Data pada kolom 1 diambil
dari txtCustomerID
139 dr[1] = [Link]; //Baris Data pada kolom 2 diambil
dari txtCompanyName
140 [Link]["[Link]"].[Link](dr); //Tambahkan Baris
Data pada setiap kolom (sesuai dengan yang di atas)
141
142 UpdateData(); //Update ke DB
143 [Link]("Data Customer dengan ID " +
[Link] + " berhasil ditambahkan." , "Tambah
Data", [Link], [Link]); //
Pesan berhasil
144 Kosong(); //Bersihkan field
145 TampilData(); //Tampilkan ke dgv
146 }
147 else //Jika Baris yang dicari berdasarkan txtCustomerID sudah ada
148 {
149 [Link]("Data Customer dengan ID " +
[Link] + " sudah ada.", "Tambah Data",
[Link], [Link]); //Pesan gagal
150 }
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 5
151 }
152
153 private void dgvData_CellDoubleClick( object sender,
DataGridViewCellEventArgs e)
154 {
155 int baris = [Link]; //index baris cell saat
ini / yang sedang terpilih
156
157 [Link] = [Link][baris].Cells[0].[Link]
(); //txtCustomerID nilainya diambil dari index baris cell saat
ini pada kolom 1 (index ke 0) di dgvData
158 [Link] = [Link][baris].Cells[1].[Link]
(); //txtCompanyName nilainya diambil dari index baris cell saat
ini pada kolom 2 (index ke 1) di dgvData
159 }
160
161 private void btnUbah_Click(object sender, EventArgs e)
162 {
163 dr = [Link]["[Link]"].[Link]([Link]); //
Cari baris berdasarkan txtCustomerID yang diinput pengguna
164
165 if (dr != null) //Jika Baris yang dicari berdasarkan txtCustomerID
sudah ada
166 {
167 dr[1] = [Link]; //Ubah Baris Data pada kolom 2
(yang bukan PK) yang nilainya diambil dari txtCompanyName
168
169 UpdateData(); //Update ke DB
170 [Link]("Data Customer dengan ID " +
[Link] + " berhasil diubah.", "Ubah Data",
[Link], [Link]); //Pesan
berhasil
171 Kosong(); //Bersihkan field
172 TampilData(); //Tampilkan ke dgv
173 }
174 else //Jika Baris yang dicari berdasarkan txtCustomerID belum ada
175 {
176 [Link]("Data Customer dengan ID " +
[Link] + " tidak ada.", "Ubah Data",
[Link], [Link]); //Pesan gagal
177 }
178 }
179
180 private void btnHapus_Click(object sender, EventArgs e)
181 {
182 dr = [Link]["[Link]"].[Link]([Link]); //
Cari baris berdasarkan txtCustomerID yang diinput pengguna
183
184 if (dr != null) //Jika Baris yang dicari berdasarkan txtCustomerID
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 6
sudah ada
185 {
186 [Link](); //Hapus Baris Data berdasarkan txtCustomerID
187
188 UpdateData(); //Update ke DB
189 [Link]("Data Customer dengan ID " +
[Link] + " berhasil dihapus.", "Hapus Data",
[Link], [Link]); //Pesan
berhasil
190 Kosong(); //Bersihkan field
191 TampilData(); //Tampilkan ke dgv
192 }
193 else //Jika Baris yang dicari berdasarkan txtCustomerID belum ada
194 {
195 [Link]("Data Customer dengan ID " +
[Link] + " tidak ada.", "Hapus Data",
[Link], [Link]); //Pesan gagal
196 }
197 }
198
199 private void btnUrut_Click(object sender, EventArgs e)
200 {
201 if ([Link] != -1 && [Link] !=
-1) //jika cboUrut & cboAscDesc dipilih
202 {
203 //Tarik Data dan Tampilkan Data ke dgv
204 LoadDataUrut();
205 TampilData();
206 }
207 else //Jika cboUrut & cboAscDesc tidak dipilih
208 {
209 [Link]("Pengurutan belum diatur." , "Urut",
[Link], [Link]); //Pesan gagal
210 }
211 //Kondisi if di atas digunakan untuk mencegah error. Hal ini
karena pada query LoadDataUrut isinya menampilkan data
berdasarkan cboUrut (Field CustomerID/CompanyName) dan
cboAscDesc (Asc/Desc), sehingga wajib isi keduanya / tidak boleh
salah satu saja.
212 }
213
214 private void txtCariID_TextChanged( object sender, EventArgs e)
215 {
216 LoadData(); //Tarik ulang data, hal ini agar kalau misalkan
pengguna pernah melakukan Cari Filter, data tetap dapat
ditemukan.
217
218 dr = [Link]["[Link]"].[Link]([Link]); //Cari
baris berdasarkan txtCustomerID yang diinput pengguna
...tihan Teori\Kelas\SI A Pagi\Teori\Minggu11\[Link] 7
219
220 if (dr != null) //Jika Baris yang dicari berdasarkan txtCariID
sudah ada
221 {
222 [Link] = dr[1].ToString(); //Munculkan Baris Data
kolom kedua pada lblCompanyName
223 }
224 else //Jika Baris yang dicari berdasarkan txtCariID belum ada
225 {
226 [Link] = ""; //Kosongkan lblCompanyName
227 }
228 }
229
230 private void btnCariFilter_Click(object sender, EventArgs e)
231 {
232 LoadDataFilter(); //Tarik data berdasarkan txtCariIDFilter
233 TampilData(); //Tampilkan ke dgv
234 }
235
236 private void btnCariHighlight_Click( object sender, EventArgs e)
237 {
238 LoadData(); //Tarik ulang data, hal ini agar kalau misalkan
pengguna pernah melakukan Cari Filter, data tetap dapat
ditemukan.
239 TampilData(); //Tampilkan ke dgv
240
241 [Link](); //Bersihkan pilihan sebelumnya pada dgv
242 for (int i = 0; i < [Link]; i++) //i dimulai dari 0
sampai < jumlah baris pada dgvData
243 {
244 if ([Link][i].Cells[0].[Link]() ==
[Link]) //Jika nilai cell baris index ke -i
pada kolom 1 di dgvData = txtCariIDHighlight (Misal
perulangan ke-2, maka jika cell baris ke 2 (index 1) pada
kolom 1 (index 0) di dgvData = txtCariIDHighlight)
245 {
246 [Link][i].Selected = true; //Maka pilih baris index
ke-i
247 }
248 }
249 }
250 }
251 }
252