C# Listbox-Diziler-Veritabanıyla ilgili bir kaç soru

godmasar

Katılımcı Üye
17 Şub 2012
397
1
İstanbul
merhaba arkadaşlar. Bir program yazmaya karar verdim ve çoğuda bitti. :yaho1 Sadece bu sorunum kaldı. şimdi şu şekil oluyor. Veritabanındaki kayıtlı ürünleri çekip soldaki lsitboxa yazdırıyo kullanıcı ekle butonuna tıkladıkçada soldaki seçili olan sağ tarafa geçiyo ama sol taraftan silinmiyo(zaten öyle olması gerekiyodu :RpS_biggrin: ). Sağ tarafta ürünler sıralanıyo fakat asıl sorunum ürünlerin fiyatının hesaplanmasında. Sağ taraftaki listboxta bulunan ürünleri bir diziye atıp daha sonra for döngüsünde o dizideki değerleri okuyup veritabanından fiyatlarını çekmek gibi bişey geldi aklıma. :RpS_biggrin: Şimdi kullanıcı ekle butonuna tıkladığında seçilen ürün hem sağ tarafa geçiyo hemde ArrayList'e atması gerekiyo( :confused: ) fakat sağ tarafa attığı halde dizinin uzunluğu yazdırdığımda ne kadar ürün eklemişsem oluyum dizinin uzunluğu 4 değerini gösteriyoki demekki hatalı. Size sorularım ise :
1-) Bu hatayı nasıl giderebilirim?
2-) Kullanabileceğim farklı bir dizi yöntemi vardır?
3-) yada bu hesaplama işlemine dizileri karıştırmadan nasıl yapabilirm?
sorualrım bu kadar şimdiden teşekkürler :)
(konuyu yanlış yere açmışsam kusura bakmayın uzun süredir foruma giremiyorum)


Kaynak kodlarıda bunlar :

Kod:
using System;
using System.Collections;
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.OleDb;

namespace Kafe
{
    public partial class masa1 : Form
    {
        public masa1()
        {
            InitializeComponent();
        }

        OleDbConnection con;
        OleDbCommand cmd;
        OleDbDataReader oku;

        ArrayList alinanlar = new ArrayList();

        private **** masa1_Load(object sender, EventArgs e)
        {
            con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=vt1.mdb");
            cmd = new OleDbCommand("Select * from urunler", con);
            con.Open();
            oku = cmd.ExecuteReader();
            while (oku.Read())
            {
                lMevcut.Items.Add(oku["urun_adi"].ToString());
            }
                con.Close();
            
            
        }

        private **** button1_Click(object sender, EventArgs e)
        {
            alinanlar.Add(lMevcut.Items[lMevcut.SelectedIndex]);
            lAlinmis.Items.Add(lMevcut.Items[lMevcut.SelectedIndex]);
            
        }

        private **** button2_Click(object sender, EventArgs e)
        {
            
            if (lAlinmis.SelectedIndex == -1)
            {
            }
            else
            {
                DialogResult d1 = MessageBox.Show("Silmek istediğinden emin misin?", "Emin misin?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (d1.ToString() == "Yes")
                {

                    lAlinmis.Items.RemoveAt(lAlinmis.SelectedIndex);

                }
                else
                {
                }
            }
        }

        
        private **** button3_Click(object sender, EventArgs e)
        {
        }
    }
}
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.