بِسْمِ اللَّهِ Mudah-mudahan Tutorial .Net C# – CRUD Database Text File (Update dan Delete) ini bermanfaat
Setelah menyelesaikan tutorial tambah data, tombol navigasi dan juga pencarian pada database text file. Melanjutkan tutorial sebelumnya, disini saya akan berbagi masih tentang CRUD yaitu Update dan Delete data.
Persiapan .Net C# – CRUD Database Text File (Update dan Delete)
Yang harus ada:
Microsoft Visual Studio 2010
Buat project seperti yang sudah dikerjakan pada tutorial .Net – Membuat project baru dengan Microsoft Visual Studio 2010
Mengerjakan tutorial tambah data yaitu di .Net C# – Membuat CRUD dengan Database Text File
Mengerjakan tutorial tombol navigasi dan juga pencarian pada database text file
Pertama
Kita mulai dengan menyiapkan fungsi pada Class DataUser.cs. Untuk mempermudah sebut saja nama fungsinya Update dan Delete, scriptnya sebagai berikut:
public bool Update(int id, string usernm, string passwd)
{
int count = 0;
CreateFile();
try
{
fs = new FileStream(data_path, FileMode.Open);
sr = new StreamReader(fs);
string temp = "";
string temp2 = "";
while ((temp = sr.ReadLine()) != null)
{
if (count == id)
{
temp2 += usernm + ";" + passwd + "\r\n";
}
else
{
temp2 += (temp + "\r\n");
}
count++;
}
sr.Close();
fs.Close();
fs = new FileStream(data_path, FileMode.Create);
sw = new StreamWriter(fs);
sw.Write(temp2);
sw.Close();
fs.Close();
return true;
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
return false;
}
}
public bool Delete(int id)
{
int count = 0;
CreateFile();
try
{
fs = new FileStream(data_path, FileMode.Open);
sr = new StreamReader(fs);
string temp = "";
string temp2 = "";
while ((temp = sr.ReadLine()) != null)
{
if (count != id)
{
temp2 += (temp + "\r\n");
}
count++;
}
sr.Close();
fs.Close();
fs = new FileStream(data_path, FileMode.Create);
sw = new StreamWriter(fs);
sw.Write(temp2);
sw.Close();
fs.Close();
return true;
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
return false;
}
}
- Fungsi Update membutuhkan 3 parameter yaitu id, usernm dan passwd. Variabel id diperlukan untuk mengetahui index/posisi dari record yang keberapa yang akan diedit. Metode yang digunakan adalah menghapus dan membuat file text yang baru. Sebelum dihapus semua data diambil terlebih dahulu kemudian untuk data dengan id yang ada diparameter diganti dengan data yang ada diparameter (usernm dan passwd)
- Fungsi Delete membutuhkan 1 parameter yaitu id (index/posisi dari record yang akan dihapus). Metodenya sama dengan fungsi Update yaitu menghapus dan membuat file text yang baru. Bedanya adalah mengambil data dari file sebelumnya kecuali data dengan id yang ada di parameter.
Kedua
Kemudian ke bagian desain form tidak perlu ada perubahan.
Ketiga
Masuk ke bagian coding. Untuk sekedar mengingatkan pada tutorial tambah data pada database text file kita sudah membuat tombol button6 dan button4, dengan masing-masing mempunyai nama fungsi button6_Click dan button4_Click bergantung dengan pemberian nama pada tombol. Kebetulan nama tombol yang saya buat adalah :
button6 yang nantinya akan mempunyai 3 fungsi yaitu:
- Tombol Add untuk mengosongkan tampilan dan mengubah nilai label1 menjadi 1
- Tombol Save untuk menyimpan data baru
- Tombol Update untuk menyimpan data hasil edit
button4 mempunyai 2 fungsi yaitu:
- Tombol Edit untuk mengubah nilai label1 menjadi 2
- Tombol Cancel untuk membatalkan Add dan Edit
Langsung saja isi coding sebagai berikut:
private void button6_Click(object sender, EventArgs e)
{
if (button6.Text == "Add")
{
txtUserName.ReadOnly = false;
txtPassword.ReadOnly = false;
txtConfirm.ReadOnly = false;
txtUserName.TabStop = true;
txtPassword.TabStop = true;
txtConfirm.TabStop = true;
txtUserName.Text = "";
txtPassword.Text = "";
txtConfirm.Text = "";
label1.Text = "1";
button6.Text = "Save";
button4.Text = "Cancel";
}
else
{
string strError = "";
if (txtUserName.Text.ToString().Trim() == "")
{
strError = "User Name";
}
if (txtPassword.Text.ToString().Trim() == "")
{
strError = (strError.Trim() == "" ? "" : strError + ", ") + "Password";
}
if (txtConfirm.Text.ToString().Trim() == "")
{
strError = (strError.Trim() == "" ? "" : strError + ", ") + "Confirm";
}
if (strError != "")
{
MessageBox.Show(strError + " is required field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
if (txtPassword.Text.ToString().Trim() != txtConfirm.Text.ToString().Trim())
{
MessageBox.Show("Password not equal Confirm !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
if (label1.Text == "1")
{
if (conDB.Find(txtUserName.Text.ToString()))
{
MessageBox.Show("Duplicate User!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
else
{
conDB.Insert(txtUserName.Text, Modules.Encrypt(txtPassword.Text));
MessageBox.Show("User saved", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
ReadData(Convert.ToInt32(this.txtRow.Text));
}
}
else if (label1.Text == "2")
{
int id = 99999;
bool findUser = conDB.Find(txtUserName.Text.ToString(), ref id);
if (findUser == true && (id != Convert.ToInt32(txtRow.Text)-1))
{
MessageBox.Show("Duplicate User!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
else
{
conDB.Update(Convert.ToInt32(txtRow.Text)-1, txtUserName.Text, Modules.Encrypt(txtPassword.Text));
MessageBox.Show("User updated", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
ReadData(Convert.ToInt32(this.txtRow.Text));
}
}
txtUserName.ReadOnly = true;
txtPassword.ReadOnly = true;
txtConfirm.ReadOnly = true;
txtUserName.TabStop = false;
txtPassword.TabStop = false;
txtConfirm.TabStop = false;
button6.Text = "Add";
button4.Text = "Edit";
label1.Text = "0";
}
}
private void button4_Click(object sender, EventArgs e)
{
if (button6.Text == "Add")
{
button6.Text = "Update";
button4.Text = "Cancel";
txtUserName.ReadOnly = false;
txtPassword.ReadOnly = false;
txtConfirm.ReadOnly = false;
txtUserName.TabStop = true;
txtPassword.TabStop = true;
txtConfirm.TabStop = true;
label1.Text = "2";
}
else
{
txtUserName.ReadOnly = true;
txtPassword.ReadOnly = true;
txtConfirm.ReadOnly = true;
txtUserName.TabStop = false;
txtPassword.TabStop = false;
txtConfirm.TabStop = false;
button6.Text = "Add";
button4.Text = "Edit";
label1.Text = "0";
}
}
Akhirnya
Berikut tampilan
Setelah klik tombol Edit tampilannya akan seperti ini
Silakan dicoba dan sampai disini sudah selesai untuk Tutorial .Net C# – CRUD Database Text File (Update dan Delete).
Atau kalau sudah ada gambaran silakan dilanjutkan dan dikembangkan lagi
Mudah-mudahan bermanfaat.