c# ile Sql veritabanından Teker Teker ARama Yapmak istiyorum

Kodla Büyü

mustafayilmaz28

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,425
iyi akşamlar arkadaşlar.
c# ile sql veritabanından kayıt arayacağım
ama arama mantığı aşağıdeki gibi olacak:
1-textboxa girilen adı veritabanında arayacak ve ilgili textboxlara aktaracak..
aktaracak fakat aynı isimde iki veya daha fazla kayıt varise ilk kaydı textboxlara yazdırdıktan sonra soracak ;
diyecek ki kayıt bumu hayır değilse ikinci aynı isimdeki kaydı getirecek..bu dosyanın sonuna gelene kadar devam edecek..
2-bu işlemi delphideki veritabanında
witd table1.eof do
begin
...
...
..
end;
şeklinde yapabiliyordum..yıllar önce :D
ama şimdi c# da hangi kodları nasıl kullanarak bu işlemi yapabilirim..
bu bahsettiğim işlemin kolay olduğunu düşşünüyorum c# bilen arkadaşlar için..
ve dolayısı ile yardımlarınızı bekliyorum..
şimdide teşekkürler.
 
hocam bunu sana yazarım ama sen önce kayıtları çekip textboxlara getiren kodları yaz ben sana eksiklerini yazayım
 
hocam dataset ile sql cümleciği kullanarak verileri çek,
sonra yine for döngüsü ile sorarsın kullanıcı ya bumu bumu diye,
tabi önce hocamın dediği gibi başlangıcını yapman gerekir
 
hocam
elimdeki kitap
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;


namespace TeknikServisV10
{
public partial class kayitarama : Form
{
public kayitarama()
{
InitializeComponent();
}

SqlConnection baglantı = new SqlConnection("Data Source=MUSTAFA-PC\\SQLEXPRESS;Initial Catalog=teknikservis;Integrated Security=True;Pooling=False");
SqlCommand komut = new SqlCommand();
SqlDataAdapter adaptor = new SqlDataAdapter();
DataSet ds = new DataSet();

private void button1_Click(object sender, EventArgs e)
{

adaptor.SelectCommand = new SqlCommand("select musteriadi,musterisoyadi,mustericeptel1,markasi,modeli,imei,arizasi from tblteknikservis where musteriadi like'" + txtaranacakad.Text + "'", baglantı);
adaptor.Fill(ds);
txtmusteriadi.Text = ds[0]["musteriadi"];
}
}
}
data adaptor ile verileri çekmiş sanırım.
ve artısı yine kaynak kitabımda verileri önce data gride oradan seçince textboxlara aktarma yapıyor..
sanırım sizlerin bahsettiğiniz
txtmusteriadi.Text = ds[0]["musteriadi"];
şu kısmım benden yazmamı istiyorsunuz..ama elimdeki yada araştırdığım hiçbir kaynakta bununla ilgili bir örnek bulamadım.. :(
birde kodları yazın diyorsunuz ya benim c# bilgim 0 ama ben yinede sizlerden hazır kod istemiyorum.geliştirebileceğim bir kaynak örnek versenizde olur :)
 
ayrıca
araştırdığım formun birinde buna ait bir örnek buldum
OleDbConnection baglanti = new OleDbConnection();

baglanti.ConnectionString = "Provider = Microsoft.Jet.Oledb.4.0;Data Source = xxx.mdb";
baglanti.Open();
string sorgu = " SELECT * FROM TABLO ";
OleDbDataAdaptor DA = new OleDbDataAdaptor(sorgu,baglanti);
OleDbCommand cmd = new OleDbCommand();
cmd.ExecuteNonQuery();
DataTable DT = new DataTable();
DA.Fill(DT);
baglanti.Close();
textbox1.text = DT[0]["Adi"].ToString();
textbox2.text = DT[0]["SoyAdi"].ToString();
textbox3.text = DT[0]["yas"].ToString();
.
buda istediğim şey ama
veritabanı bağlantısı ve kullandığı nesneler farklı bunu benimkine uyarlamam benim için zor.hatta imkansız gibi şu aşamada :(
:x
ayrıca ilginize teşekkür ederim..
:++:
birde
_200_104462.jpg

şu kitap gibi c# da sadece veritabanaı anlatan bir kitap önerisi lütfen :verymad: :roll:
 
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;


namespace TeknikServisV10
{
public partial class kayitarama : Form
{
public kayitarama()
{
InitializeComponent();
}

SqlConnection baglantı = new SqlConnection("Data Source=MUSTAFA-PC\\SQLEXPRESS;Initial Catalog=teknikservis;Integrated Security=True;Pooling=False");
SqlCommand komut = new SqlCommand();
SqlDataAdapter adaptor = new SqlDataAdapter();
DataSet ds = new DataSet();

private void button1_Click(object sender, EventArgs e)
{

adaptor.SelectCommand = new SqlCommand("select musteriadi,musterisoyadi,mustericeptel1,markasi,modeli,imei,arizasi from tblteknikservis where musteriadi like'" + txtaranacakad.Text + "'", baglantı);
adaptor.Fill(ds);
txtmusteriadi.Text = ds.Tables[0].Rows[0]["musteriadi"]; // Burası Böyle olması gerek hocam.


if(ds.Tables[0].Rows >1)
{
sayi = 1
while(sayi==ds.Tables[0].Rows.Count-1)
{
DialogResult Ds = MessageBox.Show("İstediğiniz kişi Bumu",DialogsButtons.YesNo);
if(Ds==DialogResult.Yes)
{
Contiune; //veya Break;
}
else
{
sayi++
txtmusteriadi.Text = ds.Tables[0].Rows[sayi]["musteriadi"];[/
}

}

}

}

}
}

hoca direkt foruma yazdım hata çıkarsa koda yaz şuan önümde visual Studio yok. Yarın Düzgününü yazarım.
 
hocam
ve diğer diğer yardımcı olan hocalarım hepinize teşekkür ederim..
ama ben hep böyle kodları sormak istemiyorum.
mesela
txtmusteriadi.Text = ds.Tables[0].Rows[0]["musteriadi"]; // Burası Böyle olması gerek hocam.
bu kısmı hiçbir kaynakta bulamadım..pekala ben bunu görmeden takdir edersiniz ki yazamam..bunu üzerine geliştirme yapmam bilr zor
o nedenle lütfen iyi bir sadece veritabanını anlatan kitap tavsiyesi istiyorum..
hocam tekrar teşekkürler..sanırım siz bana iyi bir kitap tavsiye edersiniz. :)
 
Hocam Ado.net Aykut taşdelen al ama önce c# anlatan bir kitapta bul biraz ondan öğren sonra Aykut Taşdelenin kitabını kullan NT ler de satıyorlardı.
 
Hocam Eğer istanbulda çalışıyorsan bence bir kurs bul var iyi .Net anlatan yerler.
 
evet hocam istanbul dayım
aslında kursta düşünmüyor değilim
ama hangisine gitsem ve fiyat -verim olarak en iyisi hangisi acaba?bu konuda danışmam gereken bir durum.
 
refleto' Alıntı:
Hocam Ado.net Aykut taşdelen al ama önce c# anlatan bir kitapta bul biraz ondan öğren sonra Aykut Taşdelenin kitabını kullan NT ler de satıyorlardı.
hocam bu bahettiğiniz kitapda
benim sorduğum sorulara dair örnek ve anlatımlar mevcuttur değilmi?
 
ilgin bir durum;
2 tane kayıt varken herşey sorunsuz ama
3 tane kayıt olunca aynı adla birinci olanı buluyor ve hiçbir mesaj vermeden çıkıyor..sorun nedir acaba?
kodları sağolsun
hocam yazdı..
ben birkaç düzeltme yaptım kendimce :)
private void button1_Click(object sender, EventArgs e)
{

int sayi;
int deger;
ds.Clear();
adaptor.SelectCommand = new SqlCommand("select musteriadi,musterisoyadi,mustericeptel1,markasi,modeli,imei,arizasi from tblteknikservis where musteriadi='" + txtaranacakad.Text + "'", baglantı);
adaptor.Fill(ds);
txtmusteriadi.Text =Convert.ToString( ds.Tables[0].Rows[0]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[0]["imei"]);
deger = ds.Tables[0].Rows.Count;
MessageBox.Show("Bulunan Kayıt Adedi :"+Convert.ToString( deger));
if (deger > 1)
{
sayi = 1;
while (sayi == ds.Tables[0].Rows.Count -1)
{

DialogResult Ds = MessageBox.Show("Aradığınız Kayıt Bu mu?", "Teknik Servis V 1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (Ds == DialogResult.Yes)
{
break;
}
else
{

txtmusteriadi.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["imei"]);
sayi++;
if (sayi == deger)
{
MessageBox.Show("Aradığınız Kayıttan Veritabanında Başka Yok");
}
}

}


}
else
{
MessageBox.Show("Aradığınız Kayttan Veritabanında 1 Tane Bulundu", "Teknik Servis V 1.0", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
baglantı.Close();
}
 
mustafayilmaz28' Alıntı:
ilgin bir durum;
2 tane kayıt varken herşey sorunsuz ama
3 tane kayıt olunca aynı adla birinci olanı buluyor ve hiçbir mesaj vermeden çıkıyor..sorun nedir acaba?
kodları sağolsun
hocam yazdı..
ben birkaç düzeltme yaptım kendimce :)
private void button1_Click(object sender, EventArgs e)
{

int sayi;
int deger;
ds.Clear();
adaptor.SelectCommand = new SqlCommand("select musteriadi,musterisoyadi,mustericeptel1,markasi,modeli,imei,arizasi from tblteknikservis where musteriadi='" + txtaranacakad.Text + "'", baglantı);
adaptor.Fill(ds);
txtmusteriadi.Text =Convert.ToString( ds.Tables[0].Rows[0]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[0]["imei"]);
deger = ds.Tables[0].Rows.Count;
MessageBox.Show("Bulunan Kayıt Adedi :"+Convert.ToString( deger));
if (deger > 1)
{
sayi = 1;
while (sayi == ds.Tables[0].Rows.Count -1)
{

DialogResult Ds = MessageBox.Show("Aradığınız Kayıt Bu mu?", "Teknik Servis V 1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (Ds == DialogResult.Yes)
{
break;
}
else
{

txtmusteriadi.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["imei"]);
sayi++;
if (sayi == deger)
{
MessageBox.Show("Aradığınız Kayıttan Veritabanında Başka Yok");
}
}

}


}
else
{
MessageBox.Show("Aradığınız Kayttan Veritabanında 1 Tane Bulundu", "Teknik Servis V 1.0", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
baglantı.Close();
}

hocam projeyi gönder üzerinde debug ile bakayım dünde foruma direk yazdım böyle hasbel kader oluyor çalışırmı ufak tefek hatalar nerede bulmak zor.
 
hocam database'i göndermediğin için çalıştramadım ama sanırım düzeltim bi bak yarın cevap yazarsın.
 

Ekli dosyalar

hocam teşekkür ederim. ama gönderdiğiniz kodda olmadı fakat ben hatayı buldum şükür..
tabi sizin yardımlarınız neticesinde :)
oda şu hocam
kalın olarak belirttim oraları.
private void button1_Click(object sender, EventArgs e)
{

int sayi;
int deger;
ds.Clear();
adaptor.SelectCommand = new SqlCommand("select musteriadi,musterisoyadi,mustericeptel1,markasi,modeli,imei,arizasi from tblteknikservis where musteriadi='" + txtaranacakad.Text + "'", baglantı);
adaptor.Fill(ds);
txtmusteriadi.Text =Convert.ToString( ds.Tables[0].Rows[0]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[0]["imei"]);
deger = ds.Tables[0].Rows.Count;
MessageBox.Show("Bulunan Kayıt Adedi :"+Convert.ToString( deger));
if (deger > 1)
{
sayi = 0;
while (sayi != deger -1)
{

DialogResult Ds = MessageBox.Show("Aradığınız Kayıt Bu mu?", "Teknik Servis V 1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (Ds == DialogResult.Yes)
{
break;
}
else
{
sayi++;
txtmusteriadi.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["musteriadi"]);
txtimei.Text = Convert.ToString(ds.Tables[0].Rows[sayi]["imei"]);
}

}
if (sayi == deger-1)
{
MessageBox.Show("Aradığınız Kayıttan Veritabanında Başka Yok");
}


}
else
{
MessageBox.Show("Aradığınız Kayttan Veritabanında 1 Tane Bulundu", "Teknik Servis V 1.0", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
baglantı.Close();
}
 
Hocam kendin çözmen daha güzel.... Tebrik ederim

Dediğim gibi database olmadığı için çalıştıramadım. kolay gelsin
 
BBNET
Geri
Üst