Bu makele için Bilgehan YILDIZ' a teşekkürler
1-)Şöyle bir senaryomuz olsun
-Bir KisiID,Ad,Soyad vs.. bilgilerinin tutulduğu Kisi tablomuz
-KisiID,Username,Password bilgilerinin tutulfuğu Login tablomuz
Yaratılan bir kişinin sisteme sadece bir tane kullanıcı adına sahip olarak gireceğini varsayalım
Bu şekilde Kisi tablosunda KisiIDOtomatik Artan,Birincil anahtar
Login tablosundaki KisiIDotomatik Artmaz ancak birincil anahtar(Çünkü Kişiye bağlı olmayan kullanıcı adı olamaz)
Bu iki tablo arasında 1-1 İlişki olduğunu varsayalım
2-) Yapmak istediğimiz şu,kullanıcı Adı ve şifre girildiği zaman buna uygun kayıt login tablosunda var ise buna bağlı kişinin adı ve soyadını alttaki textboxlara yazdırmak,eğer loginde böyle bir kullanıcı yok ise Message Box ile uyarı verdirtmek olsun
3-)Burada değişik olan geçen seferkinden bir sorguda iki tablodan çalışıyorum birbirlerine bağlı
2- olarakda Sqldataadapter nesnesinin parametre alması için
Eğer fill gibi (Select işlemi yapacaksan isen) aşağıdaki gibi adapterın select commandına parametre eklemen gerekiyor.
adap.SelectCommand.Parameters.AddRange(paramloginlist);
Burada da biz tablolar arasında birebir ilişki olcak dersek(Bu senaryo için
Sorgu sonucu 1 kayıt döncek ve ben de aşağıdaki gibi datatablemın 0 rowunun ad adlı sutunun değerini okutarak atama yapıyorum
txtAd.Text = dtlogininformation.Rows[0]["Ad"].ToString();
Kod:
string baglantiyolu = ConfigurationManager.ConnectionStrings["TelefonRehberiConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(baglantiyolu);
string sorgulogin = "Select * from Login inner join Kisi On Kisi.KisiID=Login.KisiID where UserName=@Username and Password=@Password";
SqlParameter[] paramloginlist=new SqlParameter[2];
paramloginlist[0]=new SqlParameter("@Username",txtUsername.Text);
paramloginlist[1]=new SqlParameter("@Password",txtPassword.Text);
DataTable dtlogininformation=new DataTable();
SqlDataAdapter adap = new SqlDataAdapter(sorgulogin,conn);
//adap.SelectCommand = new SqlCommand(sorgulogin);
//adap.SelectCommand.Connection = conn;
adap.SelectCommand.Parameters.AddRange(paramloginlist);
adap.Fill(dtlogininformation);
if (dtlogininformation.Rows.Count > 0)
{
txtAd.Text = dtlogininformation.Rows[0]["Ad"].ToString();
txtSoyadi.Text = dtlogininformation.Rows[0]["Soyad"].ToString();
}
else
{
MessageBox.Show("Böyle kullanıcı adı -şifre eşleşen kayıt bulunamadı");
}