Menghubungkan SQL Server dengan Visual Studio C# Dan Simpan Update Delete di C#

Nah pada kesempatan ini kita akan membahas bagaimana cara koneksi ke database ( SQL SERVER) menggunakan C#. Apa yang harus disiapkan?
1.      SQL Server ( semua versi bisa kyanya)
2.      Visual Studio C#
3.      + database yang dipake ujicoba.

Pertama siapkan dulu database yang digunakan :

Database yang digunakan kali ini kita namakan db_latihan, inget nama databasenya karena akan kita gunakan ketika melakukan koneksi. Langkah kedua adalah membuat tabel yang akan digunakan. 
Pada contoh ini akan dibuat tabel yang paling sederhana, yaitu tabel kategori
Berikutnya adalah merancang tabel kategorinya :


Untuk tabel kategori dicontoh ini membuat 3 buah field yaitu, id_kategori, nama_kategori dan keterangan. Yang perlu diperhatikan adalah id_kategori dimana tipe data yang digunakan adalah INT dan adalah auto increment

Mengapa harus seperti itu??
Karena saya tidak mau repot mengurus ID yang ada didalam tabel kategori, ID Kategori akan dicreate oleh SQL Server karena sudah kita seting auto increment . Jika sudah simpan tabel kategori dengan nama t_kategori.

Karena database dan tabel sudah siap, kita langsung masuk ke Visualnya.


Apa saja langkah-langkah untuk melakukan koneksi ke SQL Server??
  • Buat form dulu
  • Buat class untuk conection string 
  •  Yang terakhir tinggal query aja

Langsung saja, silahkan rancang form sesuai dengan tabel yang kita punya :
  
Silahkan rancang form sesuai dengan diatas, keterangannya :
  • Untuk Textbox (txtid_kategori , txtNamaKategori, txtKeterangan)
  • Untuk Button (btnNew, btnSimpan, btnHapus, btnKeluar)
  •  Untuk ListView (lvKategori )
Jika form sudah siap lanjut ke codingnya.


Langkah pertama adalah menambahkan class.
Class akan digunakan untuk menyimpan variable global, yaitu conection string.
Conecntion string adalah sebuah variable string yang digunakan untuk melakukan setingan koneksi ke server. Untuk membuat class berikut tahapannya :
Klik kanan pada nama projectnya => Add=> Class

Untuk class diberi nama koneksi.cs

Jika sudah hasilnya seperti berikut :


Tambahkan coding using System.Data.SqlClient; untuk bagian atasnya pada koneksi.cs. Apa gunanya? Untuk koneksi ke SQL Server. Selanjutnya tambahkan coding seperti dibawah ini :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace latihan_dbprogramming
{
    class koneksi
    {
        public System.Data.SqlClient.SqlConnection GetConn()
        {
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = "Data Source= Toufik-PC; Initial Catalog= db_latihan;user=sa; Password=123456";
            return conn;
        }
    }
}

 Yang perlu diperhatikan adalah tulisan berwarna merahnya,
"Data Source= Toufik-PC; yang ini adalah nama server yang digunakan pada SQL SERVER
Initial Catalog= db_latihan; yang ini adalah nama databasenya
user=sa; ini adalah username untuk masuk ke database
Password=123456"; ini adalah passwordnya
Terus gmna kalo gak isi password?? Klo gk isi password dirubah menjadi
conn.ConnectionString = "Data Source= Toufik-PC; Initial Catalog= db_latihan; Integrated Security=True";

Nah itu untuk classnya. Jika sudah kita lanjut ngoding yang lain :D
Kembali ke form, langkah pertama yang harus diatur adalah mengatur property dari textbox yang akan diletakkan di form load.

Tambahkan coding berikut diform load,
private void Form1_Load(object sender, EventArgs e)
        {
            txtid_kategori.Enabled = false;
            txtid_kategori.Text = "OTOMATIS";
        }

Agar ketika load, txtid_kategorinya disable dan berisi tulisan id otomatis.
Karena nanti id nya bakal ke isi sendiri secara otomatis tanpa kita harus insert secara manual lagi.
Langkah selanjutnya adalah menambahlan namescape seperti diclass :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


Kenapa selalu ditambahkan using System.Data.SqlClient karena form ini akan ada koneksi ke database.

Jika sudah, kita harus memanggil conection string dari class yang sudah dibuat tadi, caranya sebagai berikut :
koneksi konn = new koneksi();
       public Form1()
        {
            InitializeComponent();
        }


Tambahkan coding koneksi konn = new koneksi();
Koneksi adalah nama classnya
Konn adalah variable yang digunakan untuk class.
Tahapan selanjutnya adalah membuat method untuk isi dari listviewnya, codingnya sebagai berikut (ingat codingnya taruh didalam classnya):
public void listdata()
        {
            SqlDataReader reader = null;
            lvKategori.Items.Clear();
            lvKategori.Columns.Clear();
            lvKategori.Columns.Add("ID Kategori", 70, HorizontalAlignment.Left);
            lvKategori.Columns.Add("Nama Kategori", 150, HorizontalAlignment.Left);
            lvKategori.Columns.Add("Keterangan", 150, HorizontalAlignment.Left);
            lvKategori.GridLines = true;
            lvKategori.FullRowSelect = true;
            lvKategori.Activation = ItemActivation.TwoClick;
            lvKategori.View = View.Details;
            lvKategori.MultiSelect = false;


            System.Data.SqlClient.SqlConnection conn = konn.GetConn();
            try
            {
                conn.Open();
                string sql = "select * from t_kategori";
                SqlCommand command = new SqlCommand(sql, conn);
                command.ExecuteNonQuery();

                //Cek ada
                reader = command.ExecuteReader();

                while (reader.Read())
                {
ListViewItem item1 = new ListViewItem(reader["id_kategori"].ToString(), 0);
                    item1.SubItems.Add(reader["nama_kategori"].ToString());
                    item1.SubItems.Add(reader["keterangan"].ToString());

                    lvKategori.Items.Add(item1);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            finally
            {
                conn.Close();
            }

Dan jika sudah, panggil method tersebut diform loadnya :
private void Form1_Load(object sender, EventArgs e)
        {
            txtid_kategori.Enabled = false;
            txtid_kategori.Text = "OTOMATIS";
            listdata();
        }

Yang sudah coba jalankan projectnya :

Terlihat sudah ListViewnya sudah terisi.


ListView sudah, sekarang kita ngerjain button Simpannya. Codingnya seperti berikut :
Tahap 1 : atur logikanya jika id=OTOMATIS akan sebagai simpan, jika tidak akan menjadi update. Dan rancang codingnya seperti berikut :

Tahap 2. Cek Validasinya, karena jika tersimpan ke database data tidak boleh ada yang kosong. Dan Codingnya seperti berikut :

 Nah itu coding validasinya, bagaimana untuk simpan datanya??




Penjelasan :
System.Data.SqlClient.SqlConnection conn = konn.GetConn();
conn.Open();  ==> ini coding untuk memanggil koneksi dan membuka koneksinya


string sql = "insert into t_kategori values ('" + txtNamaKategori.Text + "','"
                                                        + txtKeterangan.Text + "')";

Coding diatas untuk Query SQLnya, insert ke tabel t_kategori dan datanya diambil dari textbox, kenapa tidak ada ID?? Kan udah dibilang Idnya OTOMATIS :p

SqlCommand command = new SqlCommand(sql, conn);
                    command.ExecuteNonQuery(); ==> yang ini untuk mengeskekusi querynya


conn.Close();  ==> ini untuk nutup koneksi
MessageBox.Show("Data Kategori Sukses Tersimpan"); ==> Nampilin pesan sukses


Kalau sudah, coba jalanin programnya dan coba untuk menyimpan data


Cek validasi dulu :



Jika semua data sudah terisi dan kemudian disimpan maka :

Nah simpan sudah, terus untuk updatenya gmna??
Kita bahas karang untuk updatenya , dan berikut ini coding updatenya :


Penjelasannya sama koq ama insert datanya, bedanya hanya diQuerynya saja, yang warna merah diatas. Nah jika updatenya sudah, sekarang tambahkan coding untuk ListView_MouseDoubleClick.

Carilah property dari lvKategori :
Dobel klik pada event MouseDoubleClick, maka akan masuk ke halaman codenya, dan muncul coding seperti berikut :

private void lvKategori_MouseDoubleClick(object sender, MouseEventArgs e)
        {

        }

Tambahkan coding untuk lvKategori_MouseDoubleClicknya :
private void lvKategori_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            try
            {
             txtid_kategori.Text = lvKategori.SelectedItems[0].Text;
txtNamaKategori.Text = Convert.ToString(this.lvKategori.SelectedItems[0].SubItems[1].Text);
txtKeterangan.Text = Convert.ToString(this.lvKategori.SelectedItems[0].SubItems[2].Text);
            }
            catch
            {
                MessageBox.Show(e.ToString());
            }
        }

Intinya adalah ketika diclick listviewnya, agar datanya mengisi textbox sesuai dengan semestinya. Yang harus diseting adalah
SelectedItems[0].Text
SelectedItems[1].Text
SelectedItems[2].Text
Diatas adalah index dari field dalam database, index ke 0 adalah id_kategori, index ke-1 adalah nama_kategori dan seterusnya. Jika dijalankan hasilnya seperti berikut : 


Sudah bisa ketika click muncul ditextbox?? Jika sudah silahkan rubah datanya, untuk melakukan proses UPDATE.
Misalnya dirubah menjadi :

Dan datanya pun sudah terupdate :



Nah yang terakhir adalah untuk proses Hapus atau DELETE.
Silahkan dobel klik untuk button hapusnya :

private void btnHapus_Click(object sender, EventArgs e)
        {

        }

Sekarang kita akan menambahkan coding untuk button HAPUS, langkah pertama adalah cek apakah ID = OTOMATIS atau TIDAK, jika otomatis munculkan pesan pilih data yang dihapus, jika tidak silahkan dihapus datanya , rancang dlu IF-nya:











Jika sudah masuk konsepnya, baru buat query deletenya :




Dan ketika dijalankan :
Jika ID=OTOMATIS, akan muncul validasi pilih data yang akan dihapus


Dan silahkan klik listnya untuk memilih barang yang akan dihapus :


Yup segitu aja dulu postingan tentang cara menghubungkan visual dengan SQL dan simpan update deletenya...
kalo ada yang gak ngerti silahkan bertanya aja di form komentarnya...

Good Luck, Semoga kaga banyak erornya :p

45 komentar:

  1. gan maaf ganggu, mau nanya nih gan yang buat id otomatis itu. kok saya ga bisa ya dari yang buat save data nya itu gan padahal semua kodingan sudah benar dan sama tetapi selalu error di baris command.executenonquery(); dan keterangan errornya Insert Error: Column name or number of supplied values does not match table definition. itu kenapa ya gitu terus dan juga mau tanya untuk public void list data() itu ditaro nya di form1.cs kan? letaknya ngaruh tidak gan? seperti dibawah form load atau gimana? mohon bantuannya gan. terimakasih

    BalasHapus
    Balasan
    1. coba cek tabel di databasenya,,, udah sama ga' jumlahnya dengan yang di coding query insertnya, dan pastiin id tabelnya udah di set dengan auto increment.
      Kalo di atas udah yakin ga' ada salah nah coba di execute lagi. kalo masih ga' bisa juga periksa di coding visualx pas bagian insert, pastikan di query insertnya ga' ada value untuk id atau value id nya kosong.

      Untuk public void list data() nya, itu ga' di taruh dalam load, atau lainnya. dia class yg berdiri sendiri. nah pas classx di panggil (kita sebut aja method), itu baru di masukin kedalam form load nya (bisa juga di taruh dibagian mana saja ketika methodx ingin di gunakan, seperti pada button_click misalnya).
      contoh:
      private void Form1_Load(object sender, EventArgs e)
      {
      listdata(); //ini methodnya dipanggil ketika aplikasi dijalankan.
      }
      dan class list data nya di buat di form1.cs....

      kalo masih, belom bisa. bisa di tanyakan di forum, atau emailkan ke admin@toufik.web.id program beserta databasex biar saya bantu cekin :)

      Hapus
    2. cara bikin auto increment gmna gan? masalah ane sama kayak mbak Marissa,,,

      Hapus
    3. intinya.. tipe datanya harus integer ato sejenisnya...
      terus is identity nya di set ke "YES"... gitu aja gan...

      Hapus
    4. thanks gan,, suksess,, is identity di set "YES"

      Hapus
    5. gan, biar waktu simpan data langsung di tampilkan pad listviewnya gmna cara?

      Hapus
    6. panggil aja method listdata() nya dibawah messagebox nya di button simpan... di tulisan proses simpan itu...

      Hapus
    7. ooo iya,,, thanks gan,,, suksess :)

      Hapus
  2. Apakah bisa konek db dengan c# kalo tanpa class?!

    Maksud saya adalah coding dalam satu halaman saja, misalnya koneksi terjadi ketika ada event button1_click dan lain sebagainya?!

    BalasHapus
  3. gann ... kok beda yah...

    di agan public void listData

    kok di saya
    private void LvKategori_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    trus kok ga mucul yah datanya..


    mohon pencerahan nya master...

    BalasHapus
    Balasan
    1. void listData() itu method yang dibuat sendiri,,,
      sedangkan private void LvKategori_SelectedIndexChanged(object sender, EventArgs e) itu berasal dari properties event nya listView...
      masih bingung? kirim aja coding ma databasex ke admin@toufik.web.id ntar saya liat kalo sempat...
      thanks...

      Hapus
  4. public System.Data.SqlClient.SqlConnection getConn() yang getConn nya kok di baca not all code paths return a value c#

    ini pada class koneksi.

    mohon pencerahannya gan..
    terimakasih

    BalasHapus
    Balasan
    1. udah ditambahin library data.sql nya?

      Hapus
    2. kirimin coding ama databasenya ke admin@toufik.web.id aja gan... biar saya cekin...

      Hapus
    3. udah mau bener gan... dan sudah jalan programnya...

      tapi ada kendala saat update gan.,., pas update kok semua datanya yang ke update,,

      bagaimana solusinya gan.,.,., makasii.,.,

      sangat membantu.

      Hapus
    4. intinya pake primary key databasenya... biar id nya gak ada yang sama atau uniq... kalo udah uniq parameternya gak bakal ke update semua datanya,,

      Hapus
    5. sudah gan..,,, terimakasih.,.,

      sangat membantu


      sukses selalu dalam karyanya..

      Hapus
  5. Gan, kalo saya mau koneksiin 2 database bagaimana ya? Jadi ada komputer A dengan database 'A' dan ada komputer B dengan database 'B'. Sewaktu2 komputer A mengirim request data ke komputer B. Lalu komputer B membalas dengan mengirim kembali data yang diinginkan komputer A.

    BalasHapus
    Balasan
    1. coba pake adhoc gan,,, jadi antara komputer a dan komputer b dihubungkan lewat jaringan... jadi nanti ada komputer yang berperan sebagai server yang mengakomodasi data antar komputernya....

      tutorialx coba cari di google dlu.. sy belum sempat buatnya...

      Hapus
    2. Ia mantap nih gan udah bisa buat jaringan adhocny, ud bisa konek komputer A sama B pake jaringan server yang dibuat. Cara kirim datanya gmn ya gan? codingannya ga kebayang. Saya pake windows application C#, database sql server. tampilannya udah jadi. Tinggal masalah mau ngerequest data sama kirim data.

      Kebnyjan tutorial saya nemuinnya,1 database diakses bnyk komputer.

      Hapus
  6. Master mohon Pencerahan saya baru belajar, saya errornya seperti ini maslah dmana pak?
    System.Data.SqlClient.SqlException was unhandled
    HResult=-2146232060
    Message=String or binary data would be truncated.
    The statement has been terminated.
    Source=.Net SqlClient Data Provider
    ErrorCode=-2146232060
    Class=16
    LineNumber=1
    Number=8152
    Procedure=""
    Server=Uut
    State=4
    StackTrace:
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
    at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
    at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
    at Uut1.FormAdm.buttonSimpan_Click(Object sender, EventArgs e) in d:\PROJECTVSC#\Uut1\Uut1\Form1.cs:line 109
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    at System.Windows.Forms.Application.Run(Form mainForm)
    at Uut1.Program.Main() in d:\PROJECTVSC#\Uut1\Uut1\Program.cs:line 20
    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Threading.ThreadHelper.ThreadStart()
    InnerException:


    boleh jawab lewat emai pak di= uutbudhics1@gmail.com
    trimakasih sebelumnya

    BalasHapus
  7. gan ini posisi ditaruh mana

    koneksi konn = new koneksi();
    public Form1()
    {
    InitializeComponent();
    }

    masalahnya saya coba ini salah

    BalasHapus
    Balasan
    1. pastikan udah buat class koneksi nya...
      terus tambahin koneksi konn = new koneksi(); di form .cs di atas public yang mau dipakein class koneksinya...

      Hapus
  8. ijin simak dan langsung mau praktek, terima kasih sudah berbagi tutorial penting ini :)

    BalasHapus
  9. Mas, mau nanya waktu kita buat public void listdata(). kok saya tdk bs tambahkan lvKategori ya ? Kalau kita ketik lvKategori.Items.Clear(); itu lvKateogrinya merah

    Padahal Listview sudah saya ganti name : lvKategori
    ini saya lampirkan file yg saya kerjakan ( http://www.4shared.com/rar/mf0-xYdqba/latihan_dbprogramming.html )


    Mohon pencerahannya dan minta link source nya yang udah jadi mas, biar bisa dipelajari lagi


    Thanks

    BalasHapus
    Balasan
    1. ini visual studiox 2012 ato lebih tinggi ya? mau aq liat tapi aq make yg 2010 jadi gak bisa deh,,, gak punya yg 2012 soalx...

      Hapus
  10. Kok ListView-nya tidak autorefresh ya. jika klik simpan/update/delete sih data berubah namun harus close lalu run lagi.

    BalasHapus
    Balasan
    1. panggil lagi loadlistview nya setelah tombol simpan / delete..

      Hapus
  11. gan tolong jawabannya ,
    untuk bikin form1_Load() itu dibagian mananya ya ?
    makasih gan

    BalasHapus
    Balasan
    1. klik dimana saja ditempat kosong pada form design nya....

      Hapus
  12. mas toufik mau tanya dong hehe
    itu kan nanti fungsinya untuk menambah data yang di input gitu kan ya? kalau kita mau buat data jumlah stok barang, tujuan akhirnya itu nanti jumlah barang bukan inputan data. nah jadi ada database utama yg isinya data stok barang awal, trus inputan yg kita lakukan itu saat ada pemasukan barang atau pengeluaran barang, kita main jumlah disini.. misalnya kita punya PC 10 pcs di data awal (database utama), trus ada pemasukan lagi PC 2 pcs, nah trus kita nginput untuk data pemasukan PC dengan jumlah 2, dengan harapan hasil akhir yg ada di database utama itu jumlah PC berubah jadi 12 pcs. Dibuat gitu bisa nggak ya mas ?
    Terimakasih sebelumnya :)

    BalasHapus
    Balasan
    1. bisa kok.... pertama kita buat method dulu... anggap aja..
      private string setKuoata()
      {

      }
      nah terus kita ambil data kuota dari tabel,, anggap aja... tabel qty,
      Sql = "select qty from tb_barang";
      System.Data.SqlClient.SqlConnection conn = konn.GetConn(); // buat variable SqlConnection
      buat string dulu
      string totalKuota= "";//buat save kuota baru

      string maxInteger;
      maxInteger = "0"; // buat nyimpan quota nanti dr dtabase

      if (MyReader.HasRows)//cek data ada apa nggak
      {
      MyReader.Read();
      maxInteger= MyReader[0].ToString();// variable simpan data kuota dari database
      }
      MyReader.Close();
      float total = 0; // variabel simpan kuota baru
      total = Int32.Parse(maxInteger) + Int32.Parse(txtKuota.text); // tambahkan kuota dari database dengan kuota baru dari textbox nya.
      totalKuota = total ;

      return totalKuota;//mengembalikan semua data ke totalKuota.. ini nanti variabel kuota yang di save ke databasenya.
      }
      jadi saat dipanggil buat masukin data kedatabase, panggil fungsi setKuota() dan otomatis data kuota lama dan data kuota baru akan di tambah dan disimpan kedatabase...

      Hapus
    2. Komentar ini telah dihapus oleh pengarang.

      Hapus
    3. Wah terimakasih sekali mas atas jawabannya.. sangat membantu :)
      Saya mau sharing2 boleh ndak mas? Tadi saya kirim email ke mas Toufik, kalau bisa mohon dicek hehehe :)

      Hapus
    4. iya sama2... :) nanti sy cek...

      Hapus
  13. Mas Toufik,

    Terima kasih atas postingannya.
    Kalau membuat ini dengan stored procedure itu seperti apa deh mas?
    Bisa tolong diberikan contohnya?

    Terima kasih

    BalasHapus
    Balasan
    1. bisa kok gan,,, lengkap ke jasa pembuatan program di menu paling kanan...

      Hapus
  14. Mas toufik mau nanya nih,kalo datanya ditampilkan pake datagridview gimna kodingnya mas,trus kalo di form supplier misalnya kan ada kode_supplier tu,mau ditampilin di form barang pake combobox kodingnya gimna mas.mohon pencerahannya mksih

    BalasHapus
  15. Mas toufik mau nanya nih,kalo datanya ditampilkan pake datagridview gimna kodingnya mas,trus kalo di form supplier misalnya kan ada kode_supplier tu,mau ditampilin di form barang pake combobox kodingnya gimna mas.mohon pencerahannya mksih

    BalasHapus
  16. Mas toufik mau nanya nih,kalo datanya ditampilkan pake datagridview gimna kodingnya mas,trus kalo di form supplier misalnya kan ada kode_supplier tu,mau ditampilin di form barang pake combobox kodingnya gimna mas.mohon pencerahannya mksih

    BalasHapus
  17. gan koneksi class yang ini knp error ya
    koneksi konn = new koneksi();
    public Form1()
    {
    InitializeComponent();
    }
    itu koding di class kan bukan di formnya .
    mohon pencerahannya .

    BalasHapus
  18. gan mau nanya nich... koding untuk cetak laporan untuk Vb 2008,,balas lewat email. ronnyedison1@gmail.com

    BalasHapus
  19. mas mohon bantuan yg simpan nya gak bisa gimana soalnya sya kan surat masuk jadi pakek varchar bukan int jd gak bisa di auto increment jadi gimana solusinya

    BalasHapus

Ada pertanyaan atau sekedar ninggalin jejak silahkan comment di bawah
==komen anda berarti buat kami==