İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# Listbox'tan veri Silme

Konu bilgisi

15cevap
30 bingörüntüleme
01.2010açıldı
04.02.2013son cevap

#1
Merhabalar,

Bir windows projesi geliştiriyorum, veri giriyorum, verileri listeliyorum, verileri güncelliyorum ancak istediğim gibi silemiyorum.

Bir adet listbox'ım var sql'den UrunAd ve UrunId getirip listbox'a ekliyorum.
Sil butonuna bastığımda ise Urun'ü silmek istiyorum.Yani listbox'ın selecteditem özelliğinden dolayı.

Ancak her sil dediğimde bütün ürünler siliniyor.

Nasıl sorunu çözebilirim?
Cevaplar
#2
Eğer amacın listbox'dan silmek ise şu kod sanırım iş görür senin için:
listBox1.Items.Remove(listBox1.SelectedItem);
Dehcik* Konuyu açan
#3
Yalnız bunun veritabanından da sileceğini pek sanmıyorum.
#4
veritabanından da silineceğini belirtmemişsin ama aşağıdaki sql kodu ile de veritabanından silebilirsin:

Delete From Tablo1 Where UrunAd=@urun;

@urun parametresine listbox seçilen item atamalısın. daha sonra listboxtan silmelisin.
Dehcik* Konuyu açan
#5
Dediğini yaptığımda;

"expStokTakibi.Urun nesne türüyle, bilinen bir yönetilen sağlayıcı yerel türü arasında eşleme yok."

hatasını alıyorum.
#6
kullandığın kodları yazsana buraya. kodları görmeden bişey söylemek güç.
Dehcik* Konuyu açan
#7
Buyrun işte burda,

private void frmUrunSil_Load(object sender, EventArgs e)
{
urunGetir();
}

private void btnSil_Click(object sender, EventArgs e)
{
urunSil();
urunGetir();
}

private void urunGetir()
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Stok"].ConnectionString);
SqlCommand command = new SqlCommand("Select * from Urunler", connection);

connection.Open();
SqlDataReader reader = command.ExecuteReader();
List<Urun> liste = new List<Urun>();

while (reader.Read())
{
Urun urun = new Urun();
urun.UrunId = Convert.ToInt32(reader["UrunId"]);
urun.UrunAd = reader["UrunAd"].ToString();

liste.Add(urun);
}

connection.Close();
lbUrunSil.DataSource = liste;
}

private void urunSil()
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Stok"].ConnectionString);
SqlCommand command = new SqlCommand("Delete * from Urunler where UrunAd = @Ad", connection);
command.Parameters.AddWithValue("@Ad", lbUrunSil.SelecteItem);

connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
#8
urunGetir ve urunSil fonksiyonlarını aşağıdaki gibi kullanmalısın.

private void urunGetir()
        {
            SqlConnection connection = new SqlConnection((ConfigurationManager.ConnectionStrin  gs["Stok"].ConnectionString);
            SqlCommand command = new SqlCommand("Select * from Urunler", connection);
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                lbUrunSil.Items.Add(reader["UrunAd"].ToString());
            }
            connection.Close();
        }

        private void urunSil()
        {
            SqlConnection connection = new SqlConnection((ConfigurationManager.ConnectionStrin  gs["Stok"].ConnectionString);
            SqlCommand command = new SqlCommand("Delete * from Urunler where UrunAd = @Ad", connection);
            command.Parameters.AddWithValue("@Ad", lbUrunSil.SelectedItem.ToString());

            connection.Open();
            command.ExecuteNonQuery();
            connection.Close();
        }
Dehcik* Konuyu açan
#9
Sana ne kadar teşekkür etsem azdır.

Çok teşekkürler.:tt1:
Dehcik* Konuyu açan
#10
Peki listboxa ekledim, selected item'ın fiyatını label da nasıl gösteririm ?
#11
Dehcik* dedi: ↑
Peki listboxa ekledim, selected item'ın fiyatını label da nasıl gösteririm ?
öncelikle sql cümlesinde "delete *" ifadesini nasıl çalıştırdın bilmiyorum. "delete from urunler where ..." gibi olmalı.
ayrıca silme işleminde parametere olarak ürün ismini kullanmak pek doğru değil. aynı isimden birden fazla bulunabilir. illaki isimden silecekseniz bu veritaabnında bu alan "unique" yani tek olmalıdır.

gelelim fiyat olayına.bunun için 2 yol var.
1.
listbox'a ismin yanına fiyatınıda ekle.bunun için
lbUrunSil.Items.Add(reader["UrunAd"].ToString());kodunu şöyle değiştir.
lbUrunSil.Items.Add(reader["UrunAd"].ToString() + " " + reader["UrunFiyat"].ToString() );

2.
listbox'ın click olayına aşağıdaki kodu yaz.
SqlConnection cnn= new SqlConnection((ConfigurationManager.ConnectionStrin gs["Stok"].ConnectionString);
SqlCommand command = new SqlCommand("select UrunFiyat from Urunler where UrunAd = @Ad", cnn);
command.Parameters.AddWithValue("@Ad", lbUrunSil.SelectedItem.ToString());
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
label1.Text=reader["UrunFiyat"].ToString();
}
connection.Close();

birde benden bir tavsiye daha.database bağlantıları,liste ve güncelleme işlemleri için bir class oluştur. ve database ile ilgili işlemlerin burada gerçekleştir.bu şekilde daha profesyonel uygulamalar geliştirebilirsin.
kolay gelsin.
#12
üzerinden 2 sene geçmesine rahmen gerçekten çok işime yaradı bu konu teşekkürler
#13
Selamlar,

Böyle bir uygulamada DB' den birşey silerken (Delete From Tablo1 Where UrunAd=@urun;) eğer UrunAd unique değilse aynı isme sahip tüm kayıtları siler. Benim sizlere tavsiyem ValueMember kısmında Id değerini tutun veri işlem sırasında SelectedItem yerine ValueMember değerini kullanınız.

Kolay gelsin.
Misafir
#14
listBox1.Items.Remove(listBox1.SelectedItem); işime yaradı fakat bende silinen itemin tutarı textboxa ekli kalıyor textbox u komple sıfırlarsam olmaz diger itemler duruyor olacak
#15
merhabalar bnde şu kodlarla silme işlemini gerçekleştirdim.Ama label de uyarı mesajı çıkmıyor bunu nasıl sağlayabilirim?

protected void Button6_Click(object sender, EventArgs e)
{

//ListBox3.Items.Remove(ListBox3.SelectedItem);
SqlConnection baglanti = new SqlConnection(@"Data Source=A07012995\SQLEXPRESS;Initial Catalog=FrLdap;Integrated Security=SSPI;");
baglanti.Open();
SqlCommand cmd2 = new SqlCommand("delete from Users where Name='" + ListBox3.SelectedValue.ToString() + "' ", baglanti);
cmd2.ExecuteNonQuery();
baglanti.Close();
Label1.Text = "Silindi";

}
Misafir
#16
biri bana yardım edebilir mi? bn 111 sınıf bilişim örncisiyim
listbox/delete/count/ınsert/getselected-true-false...ne oluyo bunlar tm olarak kullanımlarınıda yazarsanız çok sevinirim:D

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.

Reklam