Tuesday, August 16, 2011

Binding Data dari SQL Server di WPF

Categories: , ,

Materi kali ini kita akan mencoba membuat aplikasi WPF sederhana yang akan membinding data dari SQL Server. Binding data adalah teknik umum untuk mengikat ke sumber data/informasi dan memelihara keselarasan/ sinkronisasi dari data tersebut. Untuk binding data-nya sendiri saya menggunakan ADO.NET. Langkah-langkahnya sbb:
Pertama buka dulu Microsoft Expression Blend (yang saya gunakan adalah Blend 4), klik new project, lalu pilih WPF Aplication. (jangan lupa Language nya pilih C# karena kita akan menggunakan bahasa C#) -> Project name nya saya beri nama Contact.
Lalu pada MainWindow.XAML nya buatlah design seperti gambar berikut







Setelah itu, untuk urusan codingnya kita akan menggunakan Microsoft Visual Studio 2010. Jadi pada tab Project klik kanan project Contact dan pilih edit in Visual Studio. Kemudian sesuaikan nama-nama assets pada designnya seperti dibawah ini agar coding kedepan lebih enak untuk diikuti (Cara mengubah nama assetnya dengan melalui tab property).
textbox nama -> txtNama
textbox No HP -> txtNoHP
textbox Alamat -> txtAlamat
button Close -> btnClose
button OK -> btnOK
button Show -> btnShow
listbox -> listBox1

Setelah itu kita buat terlebih dahulu untu databasenya, caranya pada tab Server Explorer Klik Connect to Database -> pada Database file name ketik contact (yang artinya kita akan membuat database yang namanya contact) -> Yes. Lalu dari database contact tersebut kita buat tabel baru dengan nama teman dimana didalamnya kita buat 3 kolom yang terdiri dari nama, nohp, alamat.

Sekarang buka MainWindow.xaml.cs -> Lalu tambahkan code berikut (yang berwarna merah):

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data;

namespace Contact{
public partial class MainWindow : Window
{
public SqlConnection connection;
public SqlCommand command;

public MainWindow()
{
this.InitializeComponent();
}

void Window_geser(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}

private void btnOK_Click(object sender, RoutedEventArgs e)
{
SqlConnection sconn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFileName=C:\Users\Thoriq_Aziz\Documents\Contact.mdf; Integrated Security=True; connect Timeout=30; User Instance=True");

string a = txtNama.Text;
string b = txtNoHp.Text;
if ((a == "") || (b == ""))
{
MessageBox.Show("Isi dahulu");
}
else
{
//memasukkan data pada database dengan command insert
SqlDataAdapter da = new SqlDataAdapter();

da.InsertCommand = new SqlCommand("INSERT INTO teman VALUES(@nama,@nohp,@alamat)", sconn);
da.InsertCommand.Parameters.Add("@nama", SqlDbType.VarChar).Value = txtNama.Text;
da.InsertCommand.Parameters.Add("@nohp", SqlDbType.VarChar).Value = txtNoHp.Text;
da.InsertCommand.Parameters.Add("@alamat", SqlDbType.VarChar).Value = txtAlamat.Text;
MessageBox.Show("Kontak berhasil ditambahkan!");

//Membuka dan menutup koneksi pada database
sconn.Open();
da.InsertCommand.ExecuteNonQuery();
sconn.Close();
}
}

private void btnClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}

private void btnShow_Click(object sender, RoutedEventArgs e)
{
BindData();
}

private void BindData(){
DataSet ds = new DataSet();
string sconn = @"Data Source=.\SQLEXPRESS; AttachDbFileName=C:\Users\Thoriq_Aziz\Documents\Contact.mdf; Integrated Security=True; connect Timeout=30; User Instance=True";
string sql = "SELECT * FROM teman";
using (connection = new SqlConnection(sconn))
{
command = new SqlCommand(sql, connection);
SqlDataAdapter da = new SqlDataAdapter();
connection.Open();
da.SelectCommand=command;
da.Fill(ds, "contact");
listBox1.DataContext=ds;
}
}
}
}

Sekarang coba jalankan dengan tekan F5.

Semoga bermanfaat.. ^_^
Silahkan kritik dan sarannya...

Spread The Love, Share Our Article

Related Posts

No Response to "Binding Data dari SQL Server di WPF"

Post a Comment