Forum
öncelikle oto dye bi tablom var .burdaki plaka alanına ait verleri combox a çektim ama burda seçtiğim plakaya göre aynı tablodaki şofor bilgisinin otomatik olarak textbox a gelmesini istiyorum.... Arkadaşlar öncelikle yardımcı olursanız çok sevinirim birileriiçin çok basit eminim ama yapamadım tam olarak teşekürler şimdiden..
Aşağıdaki kod daha önce geliştirdiğim bir programa ait örnek olabilmesi için yazıyorum .
Önce sql üzerinden istediğim verileri çekiyordum ;
try
{
SqlCommand cmd = new SqlCommand("sp_uyeacikhesap", con);
cmd.Parameters.Add("@UyeID", SqlDbType.Int).Value = uyeid;
cmd.CommandType = CommandType.StoredProcedure;
SqlDataReader dr;
if (con.State == ConnectionState.Closed)
{
con.Open();
}
dr = cmd.ExecuteReader();
while (dr.Read())
{
Hesababak ah = new Hesababak();
ah.uye_adisoyadi = dr["AdSoyad"].ToString();
ah.urun_adi = dr["UrunAdi"].ToString();
ah.urun_miktari = Convert.ToInt32(dr["UrunMiktar"]);
ah.uye_acikhesapID = Convert.ToInt32(dr["UyeHesapID"]);
ah.tarih = Convert.ToDateTime(dr["HesapTarih"]);
ah.urun_fiyati = Convert.ToDecimal(dr["UrunFiyat"]);
ah.uye_id = Convert.ToInt32(dr["UyeID"]);
listBox1.Items.Add(ah);
}
con.Close();
Ardından listbox da seçili olan kişinin değerlerini listbox a atıyordum ;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = ((Hesababak)listBox1.SelectedItem).urun_fiyati.ToString("C");
uyehesapid = ((Hesababak)listBox1.SelectedItem).uye_acikhesapID;
}
Malesef anlamadı kendi kodumu yazayım hatamı kısaca söylersen sewinirim:s
(Textbox yada Combobox a aktarmam lazım)
private void cmb_plaka_SelectedIndexChanged(object sender, EventArgs e)
{
OdbcConnection baglan = new OdbcConnection("Dsn=veritabanim");
OdbcCommand sorgu;
OdbcDataReader oku;
baglan.Open();
sorgu = new OdbcCommand("Select * from tb_oto where Plaka= '" + cmb_plaka.SelectedIndex + "' ", baglan);
oku = sorgu.ExecuteReader();
comboBox1.Items.Clear();
while (oku.Read()) {
comboBox1.Items.Add(oku["Sofor"]);
}
baglan.Close();
}
Şöyle anlatayım o zaman 🙂 Önce gidip bir public class tanımladım her seferinde aynı bilgileri girmemek için ;
public class UyeGenel
{
public int uyeid { get; set; }
public string uye_adi { get; set; }
public string uye_soyadi { get; set; }
public long uye_tckimlik { get; set; }
public string uye_adresi { get; set; }
public string uye_meslek { get; set; }
public string uye_mail { get; set; }
public long uye_evtelefon { get; set; }
public long uye_ceptelefon { get; set; }
public int uye_cinsiyet { get; set; }
public DateTime uye_dogum { get; set; }
public DateTime uye_baslangic { get; set; }
public int uye_aktif { get; set; }
public DateTime uye_odeme_tarihi { get; set; }
public int uye_no { get; set; }
public int uye_odeme_period { get; set; }
public string uye_odeme_tipi { get; set; }
public decimal uye_aylik_ucreti { get; set; }
public string uye_seans { get; set; }
public string uye_resim { get; set; }
public decimal uye_kredi { get; set; }
public int uye_gun { get; set; }
public int uye_gno { get; set; }
public override string ToString()
{
return uye_adi + ' ' + uye_soyadi;
}
Ardından kodumda data reader ile read yaparken dikkat edersen çektiğim veriyi direk combobox a değil class a atadım ve bunu combobox ın olduğu form un load ına koydum kodun en altında bakarsan en son combobox a attım veriyi ;
try
{
con = new SqlConnection(Program.ConStr);
SqlCommand cmd = new SqlCommand("sp_sorgucek", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataReader dr;
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
UyeGenel uyed = new UyeGenel();
uyed.uyeid = Convert.ToInt32(dr["UyeNo"]);
uyed.uye_adi = dr["UyeAdi"].ToString();
uyed.uye_soyadi = dr["UyeSoyadi"].ToString();
uyed.uye_odeme_tarihi = Convert.ToDateTime(dr["UyeOdeme"]);
uyed.uye_aylik_ucreti = Convert.ToInt32(dr["UyeAylik"]);
comboBox1.Items.Add(uyed); >>>>>> bu kısımdan bahsediyorum 🙂
}
con.Close();
}
catch
{
con.Close();
}