Combobox'daki parçanın fiyatını değişkene toplama

Aslında sana yardımcı olmaya çalışıyor.
Ezbere kod yazmak yerine kodun ne işe yaradığını anlaman gerekiğini söylüyor. Direk kodu koyduğunda kodun hata veriyor çünkü hem ID bilgisini hem de fiyat bilgisini eksik yoluyorsun.

ID ve fiyat bilgisini nasıl yollayacağım hakkında bir fikrim yok.
 
Sadece if else ve döngüleri biliyorum neden bu kadar sert davranıyorsunuz. Bana.
Neden sadece if else ve döngüleri bilirken temelleri öğrenmeye çaba sarf etmek yerine neden kopyala yapıştır, ChatGPT koduyla dolanıyorsun ortalıkta? Yardımcı olayım diye en başından beri bir ton şey anlattım. Google'ı efektif kullanıyor olsan çoktan bitmişti problemin. Hazır beklemen kızdırıyor, dolayısıyla biraz serte kaçmış oluyor cevabım. ComboBox'ın DataSource'ına DataTable bağlar oradan kullanırsın diye anlatmışım, yol göstermişim. Kodu okuyorum, hala string ile popülasyondan sonra stringden static cast deniyorsun, bunu görünce ister istemez kızıyorum.
ComboBox'un DataSource'una DataTable bağlamayı ve nasıl "mad"'i göstereceğini bulabilirsin google'da. Böylece seçim yapıldığında SelectedItem özelliğini kullandığında sana DataRowView döndürecek. Ondan da sütun adıyla değeri getirirsin.

Kodu okuyorum, hala string ile popülasyondan sonra stringden static cast deniyorsun, bunu görünce ister istemez kızıyorum.
String popülasyondan sonra db'den getirdiğinle sınıfı oluştursan yine anlayacağım. Onu da yapmıyorsun. Önce araştırmayı öğren. Programlama araştırma yapmadan olacak bitecek bir şey değil.
 
C#:
private void modelbox_SelectedIndexChanged(object sender, EventArgs e)
{
 if (modelbox.SelectedItem != null)
 {
 string secilenmodel = modelbox.SelectedItem.ToString();
 SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=PcToplama;Integrated Security=True;Encrypt=False;");
 string sorgu = "select mfiyat from modeller where mad = @mad";
 SqlCommand cmd = new SqlCommand(sorgu, con);
 cmd.Parameters.AddWithValue("@mad", secilenmodel);
 try.
 {
 con.Open();
 SqlDataReader dr = cmd.ExecuteReader();
 if (dr.Read())
 {
 decimal fiyat = dr.GetDecimal(0);
 label5.Text = fiyat.ToString("0.00") + "TL";
 }
 else { label5.Text = "fiyat bulunamadı"; }
 dr.Close();
 }
 catch (Exception ex) { MessageBox.Show("hata " + ex.Message); }
 finally { con.Close(); }
 }
}

Bu kısım çalışınca hata belirtilen atama geçerli değil diye messagebox çıkıyor bunun sebebi datasource bir şey eklememem mi?
Edit: Ve doğru yolda mıyım?
 
Son düzenleme:

Yeni konular

Geri
Yukarı