Archive for the ‘C#’ Category

Global Koneksi

Posted: Monday,October 26, 2009 in C#, Technology
Tags: , , , ,

public static class GlobalFunction
{
public static string servername = “.”;
public static string databasename = “Database_General”;
public static string username = “”;
public static string password = “”;

public static int setKoneksi()
{
string sourceFile = “data.ini”;
if (!File.Exists(sourceFile))
{
return 0;
}
FileStream file = new FileStream(sourceFile, FileMode.OpenOrCreate, FileAccess.Read);
TextReader tr = new StreamReader(file);
int NumberOfLines = 1000;
string[] ListLines = new string[NumberOfLines];

//Read the number of lines and put them in the array
for (int i = 1; i < NumberOfLines; i++)
{
ListLines[i] = tr.ReadLine();
if (ListLines[i] == null)
{
break;
}
}
servername = GlobalFunction.Mid(ListLines[1], ListLines[1].IndexOf(‘=’) + 1).Trim();
databasename = GlobalFunction.Mid(ListLines[2], ListLines[2].IndexOf(‘=’) + 1).Trim();
username = GlobalFunction.Mid(ListLines[3], ListLines[3].IndexOf(‘=’) + 1).Trim();
password = GlobalFunction.Mid(ListLines[4], ListLines[4].IndexOf(‘=’) + 1).Trim();

// Close StreamReader
tr.Close();
//sr.Close();

// Close file
file.Close();

return 1;
}

/*————————————————————————————————*/

public NilaiAccess()
{
GlobalFunction.Koneksi();
}
public PerubahanNilai GetDataNilai(string thnajaran, string kdsem, string nim, string kelas, string kdmtk, string kdjenisnilai)
{
PerubahanNilai nilai = new PerubahanNilai();

SqlCommand cmd = new SqlCommand();
cmd.Connection = GlobalFunction.con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = “spr_prak_get_nilaiawal”;
cmd.Parameters.Add(“@thnajaran”, SqlDbType.VarChar).Value = thnajaran;
cmd.Parameters.Add(“@kdsem”, SqlDbType.VarChar).Value = kdsem;
cmd.Parameters.Add(“@nim”, SqlDbType.VarChar).Value = nim;
cmd.Parameters.Add(“@kelas”, SqlDbType.VarChar).Value = kelas;
cmd.Parameters.Add(“@kdmtk”, SqlDbType.VarChar).Value = GlobalFunction.StringIndexOfChar(kdmtk, ‘-‘).Trim();
cmd.Parameters.Add(“@kdjenisnilai”, SqlDbType.VarChar).Value = Convert.ToInt32(kdjenisnilai);

using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
nilai.Nilaiawal = sdr[“nilai”].ToString();
}
}

return nilai;
}

public bool SimpanPerubahanNilai(PerubahanNilai ubahnilai)
{

SqlCommand cmd = new SqlCommand();
cmd.Connection = GlobalFunction.con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = “spr_save_tr_perubahan_nilai”;
cmd.Parameters.Add(“@username”, SqlDbType.VarChar).Value = ActiveUser.User;
cmd.Parameters.Add(“@kdlab”, SqlDbType.VarChar).Value = ActiveUser.Kdlab;
cmd.Parameters.Add(“@thnajaran”, SqlDbType.VarChar).Value = ubahnilai.Thnajaran;
cmd.Parameters.Add(“@kdsem”, SqlDbType.VarChar).Value = ubahnilai.Kdsem;
cmd.Parameters.Add(“@nim”, SqlDbType.VarChar).Value = ubahnilai.Nim;
cmd.Parameters.Add(“@kelas”, SqlDbType.VarChar).Value = ubahnilai.Kelas;
cmd.Parameters.Add(“@kdmtk”, SqlDbType.VarChar).Value = GlobalFunction.StringIndexOfChar(ubahnilai.Kdmtk, ‘-‘).Trim();
cmd.Parameters.Add(“@kdjenisnilai”, SqlDbType.Int).Value = Convert.ToInt32(ubahnilai.Kdjenisnilai);
cmd.Parameters.Add(“@nilaiawal”, SqlDbType.VarChar).Value = Convert.ToInt32(ubahnilai.Nilaiawal);
cmd.Parameters.Add(“@nilaiubah”, SqlDbType.VarChar).Value = Convert.ToInt32(ubahnilai.Nilaiubah);

cmd.Parameters.Add(new SqlParameter(“@return”, SqlDbType.Int, 32));
cmd.Parameters[“@return”].Direction = ParameterDirection.Output;

cmd.ExecuteNonQuery();

int affectedRow = Convert.ToInt32(cmd.Parameters[“@return”].Value);

if (affectedRow == 0)
{
return false;
}
else return true;

}

Advertisements

Architecture Duwamish 7.0

Posted: Wednesday,November 19, 2008 in C#
Tags: , ,

Duwamish 7.0 dibagi menjadi empat layer:

  • Web Layer : Layer ini menyediakan suatu akses dari client ke aplikasi. Dimana layer ini merupakan Proyek Web/Windows Duwamish.sln. Layer ini terdiri dari ASP.NET Web/Windows Form dan kode-kode yg bersangkutan dengan user interface pada form tersebut untuk digunakan dalam mengontrol form.
  • Business Facade Layer : The Business Facade layer menyediakan suatu interface ke web layer untuk menangani account, kategori browsing, pembelian buku, mengupdate buku dan lainnya. Layer ini bertindak sebagai lapisan isolasi, memisahkan user interface dengan berbagai fungsi bisnis. Selain digunakan untuk memverifikasi inputan juga digunakan untuk memanggil / mengirimkan database ke server. Layer ini diimplementasikan dalam proyek dalam BusinessFacade project dalam file .sln.
  • Business Rules Layer : Layer ini, yg diimplementasikan dalam BusinessRules project dalam file .sln, berisi berbagai rule-rule dan logika bisnisnya. Layer ini melakukan tugas seperti validasi dari account pelanggan dan order buku.
  • Data Access Layer : Data Access Layer ini menyediakan layanan data ke Business Rules Layer. Layer ini diimplementasikan sebagai DataAccess project dalam file .sln. Dimana layer ini akan melakukan koneksi dengan database sql server.

Di samping empat layer di atas, Duwamish 7.0 juga berisi berbagai fungsi encapsulated di Common proyek dalam file .sln. Layer Common berisi data yang diimplementasikan dalam bentuk kelas yang digunakan untuk melewati informasi antar lapisan. Project Common juga berisi kelas untuk aplikasi konfigurasi dan tracing dalam project SystemFramework dalam file .sln.

Architectural Diagram

Top-Level Activity Diagram

Berikut high-level Unified Model Language (UML) diagram yang menggambarkan aktivitas kegiatan dan pilihan yang tersedia untuk pengguna dalam memasuki Web/Aplikasi Duwamish 7.0.

Catatan diagram ini merupakan standar UML diagram aktivitas.

Duwamish Top-Level Activity Diagram

Sumber : MSDN

Singleton for MDI child forms with c#

Posted: Tuesday,November 18, 2008 in C#
Tags: , , , ,

Ketika kita membuat MDI Form Aplikasi, biasanya kita hanya ingin memiliki satu object untuk setiap MDI Child yang dapat kita buka dan tutup kapan saja… Kita bisa memastikan bahwa setiap MDI Child yg ingin kita buka apakah sudah dibuka sebelumnya. Untuk itulah kita gunakan singleton pattern sebagai solusi dari masalah ini…

1. Buatlah MDI.cs , Form1.cs, Form2.cs

Set MDI.cs sebagai MDI Container dengan cara mengubah nilai properties IsMdiContainer = True.

2. Tambahkan MenuStrip di MDI Form

Ketikkan Form1. Dan di sebelah kanannya Form2

3. Pada View Code MDI.cs. Ketikkan Kode Berikut :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class MDI : Form
{
public MDI()
{
InitializeComponent();
}

private static MDI aForm = null;

public static MDI Instance()
{
if (aForm == null)
{
aForm = new MDI();
}
return aForm;
}

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
aForm = null;
}

private void form1ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form f = Form1.Instance();
f.MdiParent = this;
f.Show();
f.Activate();
}

private void form2ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form f = Form2.Instance();
f.MdiParent = this;
f.Show();
f.Activate();
}
}
}

Dengan catatan pada MDI.designer.cs hapus kode ini :

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

4. Pada View Code Form1.cs. Ketikkan Kode Berikut :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private static Form1 aForm = null;

public static Form1 Instance()
{
if (aForm == null)
{
aForm = new Form1();
}
return aForm;
}

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
aForm = null;
}

}
}

Dengan catatan pada Form1.designer.cs hapus kode ini :

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

5. Pada View Code Form2.cs. Ketikkan Kode Berikut :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

private static Form2 aForm = null;

public static Form2 Instance()
{
if (aForm == null)
{
aForm = new Form2();
}
return aForm;
}

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
aForm = null;
}
}
}

Dengan catatan pada Form2.designer.cs hapus kode ini :

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

6. Start Debugging / tekan F5

Sekedar mengingatkan, codingan c# ini case sensitif… Jadi hati-hati menuliskan kodenya. 😀

Semoga membantu… Good Luck!!!

Berikut adalah langkah-langkah mudah di dalam mensetting MDI Form beserta form-form childnya. Agar form child bisa berada di dalam form parent.

1. Buka visual studio 2008.

2. File -> New -> Project

3. Pilih Windows Form Application. Ok

4. Pada Properties Form1, Ubah IsMdiContainer menjadi True. Sehingga Form1 ini akan berubah menjadi MDI Parent.

5. Pada WindowsFormApplication di Solution Explorer, Add -> Windows Form -> Form2.cs . Add

6. Pada Design Form1.

Click Toolbox -> Menu&ToolBars -> MenuStrip(Double Click / Drag ke Form1)

7. Ketik Form2 pada MenuStrip tadi. Lalu Double Click.

8. Ketikkan kode berikut :

private void form2ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.MdiParent = this;
frm.Show();
}

9. Start Debugging / Tekan F5.

Semoga Membantu…