C sharp ile telefon rehberi
Trabzon havaalanında oturmuş uçağımın vaktinin gelmesini beklerken can sıkıntısından basit bir telefon rehberi yapıp vakit öldürmek istedim.Aslında bu kadaer basit bir telefon rehberi bir işe yarar mı bilmiyorum ama. kısaca c# ile veritabanına nasıl bağlanılır, nasıl kayıt eklenir. ve eklenen kayıtlar datagridviewde nasıl görüntülenir kısaca görmüş oluruz. Hem de vakit geçer. açıkcası sabah beşbuçukta kalkıp trabzona gelip şimi halledip aynı gün İstanbula dönmek için havaalanında beklerken kapsamlı bir şeyler okumak istemedim.
ilk önce sql server management studio'yu açıp veritabanı oluşturalım ve bir tablo oluşturalım
management studioda Database üzerinde sağ tuş ile new database denilip database adını giriniz ben TelRehber giriyorum. Şimdi de tablomuzu oluşturalım
USE [TelRehber] GO /****** Object: Table [dbo].[Tbl_Kisiler] Script Date: 5.05.2019 15:50:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Tbl_Kisiler]( [ID] [INT] IDENTITY(1,1) NOT NULL, [AD] [VARCHAR](25) NOT NULL, [SOYAD] [VARCHAR](25) NOT NULL, [CEP_TEL] [VARCHAR](10) NOT NULL, [IS_TEL] [VARCHAR](10) NOT NULL, [EMAIL] [VARCHAR](30) NOT NULL, [ADRES] [VARCHAR](MAX) NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GOTbl_Kisiler isminde tablomuz oluştu management Studio'yu kapatıp visual studioyu açalım
Basitçe aşağıdaki gibi bir form tasarladım, Textboxlara ve richtextbox'a girilen verileri database'e kaydedecek bir form. Hadi şimdi kodlayalım.
using System.Data; using System.Data.SqlClient;Şimdi ise kaydet butonunu kodlayalım
static string conString = "Server=.\\sqlexpress;Database=TelRehber;User Id=sa;Password=saw;"; SqlConnection baglanti = new SqlConnection(conString); DataSet ds = new DataSet(); private void Button1_Click(object sender, EventArgs e) { try { if (baglanti.State == ConnectionState.Closed) baglanti.Open(); string kayit = "INSERT INTO Tbl_Kisiler (AD, SOYAD, CEP_TEL, IS_TEL, EMAIL, ADRES) VALUES ( @AD,@SOYAD,@CEPTEL,@ISTEL,@EMAIL,@ADRES)"; SqlCommand komut = new SqlCommand(kayit, baglanti); komut.Parameters.AddWithValue("@AD", textBox1.Text); komut.Parameters.AddWithValue("@SOYAD", textBox2.Text); komut.Parameters.AddWithValue("@CEPTEL", textBox3.Text); komut.Parameters.AddWithValue("@ISTEL", textBox4.Text); komut.Parameters.AddWithValue("@EMAIL", textBox5.Text); komut.Parameters.AddWithValue("@ADRES", richTextBox1.Text); //Parametrelerimize Form üzerinde ki kontrollerden girilen verileri aktarıyoruz. komut.ExecuteNonQuery(); //Veritabanında değişiklik yapacak komut işlemi bu satırda gerçekleşiyor. MessageBox.Show(" Kayıt İşlemi Gerçekleşti.","Bilgi", MessageBoxButtons.OK,MessageBoxIcon.Information); // baglanti.Close(); } catch (Exception hata) { baglanti.Close(); MessageBox.Show("İşlem Sırasında Hata Oluştu, bilgiler kaydedilemedi."+hata ,"dikkat",MessageBoxButtons.OK, MessageBoxIcon.Error); }kaydet butonumuzu kodladık. Listele butonu ise
if (ds.Tables.Count > 0) dataGridView1.Columns.Clear(); ds.Tables.Clear(); dataGridView1.Refresh(); baglanti.Open(); try { dataGridView1.DataSource = null; //Her click de datasource u null a eşitleyip içeriğini temizliyoruz string Sqlcmd = "SELECT AD 'ADI', SOYAD 'SOYADI', CEP_TEL 'CEP TELEFONU', IS_TEL 'İŞ TELEFONU', EMAIL 'MAİL ADRESİ', ADRES 'ADRES' FROM Tbl_Kisiler"; SqlDataAdapter da = new SqlDataAdapter(Sqlcmd, baglanti);//dataapter nesnesini oluşturup sqlCmd sorgu cümlesini ve sqlCon veritabanı bağlantımızı yazıyoruz //dataset nesnesini oluşturuyoruz da.Fill(ds, "Tbl_Kisiler");//sqlCmd sorgusundan gelen veriyi dataset nesnesine ekliyoruz. b if (ds.Tables[0].Rows.Count == 0)// tabloda herhangi bir veri yoksa (boşsa) aşağıdaki blok çalışacak { return;//kayıt olmadığı için return ile bloğun dışına çıkıyoruz } else//kayıt varsa { dataGridView1.AutoResizeColumns(); dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dataGridView1.DataSource = ds.Tables["Tbl_Kisiler"];//sqlCmd sorgusu ile çektiğimiz kayıtlar datagridview1 üzerinde gösteriliyor } } catch (SqlException ex) { MessageBox.Show("Hata : " + ex); //Veritabanına bağlantı sırasında alınan bir hata varsa burada gösteriliyor } finally //button1_Click olduğu sürece bu bloğa uğramadan uygulama sonlanmıyor { baglanti.Close(); //Açık olan Sql bağlantısı sonlandırılıyor }
Düzenle butonu şu an için sadece datagridviewde seçilen veriyi textboxlara taşır. Kaydet derseniz kaydeder ama yeni bir satır olarak. var olan satırı update etmez.
int SecilenSatir; SecilenSatir = dataGridView1.CurrentRow.Index; textBox1.Text = dataGridView1.Rows[SecilenSatir].Cells[0].Value.ToString(); textBox2.Text = dataGridView1.Rows[SecilenSatir].Cells[1].Value.ToString(); textBox3.Text = dataGridView1.Rows[SecilenSatir].Cells[2].Value.ToString(); textBox4.Text = dataGridView1.Rows[SecilenSatir].Cells[3].Value.ToString(); textBox5.Text = dataGridView1.Rows[SecilenSatir].Cells[4].Value.ToString(); richTextBox1.Text = dataGridView1.Rows[SecilenSatir].Cells[5].Value.ToString();Bu kadar.