Sayfayı Yazdır | Pencereyi Kapat

sinema otomasyonu yardım

Nereden Yazdırıldığı: C#nedir?com
Kategori: C# / .NET
Forum Adı: Visual C#
Forum Tanımlaması: C# diliyle görsel programlama
URL: http://www.csharpnedir.com/forum2/forum_posts.asp?TID=23660
Tarih: 31 Temmuz 2014 Saat 06:19
Program Versiyonu: Web Wiz Forums 8.03 - http://www.webwizforums.com


Konu: sinema otomasyonu yardım
Mesajı Yazan: guitarwolf
Konu: sinema otomasyonu yardım
Mesaj Tarihi: 03 Mayıs 2009 Saat 14:31
Formumda 80 adet buton var ve bu butonlar koltukları temsil etmekte.Fakat istediğim şey yani bir türlü yapamadığım şey şu;
Eğer örneğin müşteri geldi 9:00 seans ına 1. koltuğu seçti ve bir diğer müşteri 3.koltuğu seçti.
Ben form tekrar açıldığında bu koltukları kırmızı olarak görmek istiyorum.
 Şunu denedim ama olmadı tabiki

OleDbConnection baglan = new OleDbConnection();

baglan.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data\\adoyazilim.mdb";

string sorgula = "select *from SALONLAR";

baglan.Open();

OleDbCommand kontrolet = new OleDbCommand(sorgula, baglan);

kontrolet.CommandText = "select koltuk from SALONLAR where seans='" + sEANSDataGridView.SelectedCells[0].Value.ToString() + "'";

object sonuc = kontrolet.ExecuteScaler();

string getir = Convert.ToString(sonuc);

 

if (getir == "A1")

{

button4.BackColor = System.Drawing.Color.Red;

}

else

{

button4.BackColor = System.Drawing.Color.Green;

}

if(getir=="A2")

{

button5.BackColor = System.Drawing.Color.Red;

}

else

{

button5.BackColor = System.Drawing.Color.Green;

}

 

yardımcı olabilir misiniz?




Cevaplar:
Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 14:47
buttona basıldıgında (Kı bunu nasıl 80 tanede yapcaksın onu bılmıyorum :)) database e atıyorum button 2 koltuk 2 demek sende verıtabanına button2 yada koltuk 2 yazarsın. program acıldıgında ıse verıtabanındakı koltuk sutununda bulunan tum verılerı cekersın. cektıgın verılerı strıng degere cevırırsı. sonra button2 degerı gelecegı ıcın o degerın rengını degıstırırsın.
orn soyle cektın
 
strıng a = convert.ToString(datatable.Column["koltuk"]);
a.color=red;
 
gibi bisi olabilir.


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 03 Mayıs 2009 Saat 15:01
Hocam sizin dediğiniz gibi yaptım ben zaten ki bu çok uzun bir olay yine sizin verdiğiniz kod örneği hiç bir işime yaramaz çünkü verdiğiniz kon kolon ismini gönderir içeriğini değil...


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 15:22
o zaman donguye sok
 
eksik yaziyo ozelden gondereyim neden anlamadim ama yazdigimi birebir gondermiyo


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 16:12
:) snin sorununu cozerken bi yerde takildim
donen string degeri CONTROL olarak alip islem yapabiliyorduk nasil oluyordu o?


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 03 Mayıs 2009 Saat 16:45

hocam ben bişiler denedim fakat bu sefer koltuklardan biri yanıyo sadece ama sorgu doğru çalışıyo bi türlü beceremedim:)

Kodlar şöyle;

OleDbConnection baglan_a1 = new OleDbConnection();

baglan_a1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data\\adoyazilim.mdb";

string sorgula_a1 = "select *from SALONLAR";

baglan_a1.Open();

OleDbCommand kontrolet_a1 = new OleDbCommand(sorgula_a1, baglan_a1);

kontrolet_a1.CommandText = "select a1 from SALONLAR where seans='" + sEANSDataGridView.SelectedCells[0].Value.ToString() + "'";

object sonuc_a1 = kontrolet_a1.ExecuteScalar();

string getir_a1 = Convert.ToString(sonuc_a1);

if (getir_a1 == "DOLU")

{

while (getir_a1 == "DOLU")

{

button4.BackColor = System.Drawing.Color.Red;

button4.Enabled = false;

break;


}


OleDbConnection baglan = new OleDbConnection();

baglan.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data\\adoyazilim.mdb";

string sorgula = "select *from SALONLAR";

baglan.Open();

OleDbCommand kontrolet = new OleDbCommand(sorgula, baglan);

kontrolet.CommandText = "select a2 from SALONLAR where seans='" + sEANSDataGridView.SelectedCells[0].Value.ToString() + "'";

object sonuc = kontrolet.ExecuteScalar();

string getir = Convert.ToString(sonuc);

if(getir=="DOLU")

{

while(getir=="DOLU")

{

button5.BackColor = System.Drawing.Color.Red;

button5.Enabled = false;

break;


}

 

 

 

}

}

}



Mesajı Yazan: guitarwolf
Mesaj Tarihi: 03 Mayıs 2009 Saat 18:12
bana yardımcı olabilecek kimse yok mu arkadaşlar  
Eğer veri tabanında koltuk sütununda örneğin A2 olarak kaydedilmiş ise 2 nolu buton kırmızı olsun....


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 18:14
http://rapidshare.com/files/228699106/agveritabani.rar.html
bunu kendıne gore uyarlarsan ısıne yarar sanıyorum.

-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 03 Mayıs 2009 Saat 18:41
arşiv hasarlı diyor


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 20:23

actıgında mı? tekrar upload edıyorum bekle



-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 03 Mayıs 2009 Saat 20:25
http://www.rapidshare.com/files/228752437/agveritabani.rar.html - http://www.rapidshare.com/files/228752437/agveritabani.rar.html

-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: MrForger
Mesaj Tarihi: 03 Mayıs 2009 Saat 20:53

bir veritabanın olsun, veritabanında dolukoltuklar diye bir sütunun olsun. butona basıldığında veritabanına öreneği koltuk 1 diye değer girsin. form açıldığında veritabanındaki verileri kontrol etsin ve var olan koltukların isimleriyle buton textlerin isimleri aynı olan butonların forecolorı red olsun. while döngüsü kullan derim. ben buraya senin için kod yazardım ama programcı olmak istiyosan kod arama çözüm yolu ara:)



Mesajı Yazan: guitarwolf
Mesaj Tarihi: 05 Mayıs 2009 Saat 12:48
arkadaşlar şöyle bir kod geliştirdim.80 adet buton yapıp bunları bir groupbox ın içine yerleştirdim.Önce tabloyu kontrol ettirdim ve koltuk kolonunda boton text özelliği aynı ise o butonu kırmızı yap dedim....
 OleDbConnection baglan = new OleDbConnection();
            baglan.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data\\adoyazilim.mdb";
            string komut = "select * from SALONLAR";
            baglan.Open();
            OleDbCommand denetle = new OleDbCommand(komut, baglan);
            denetle.CommandText = "select koltuk from SALONLAR where bosmu='dolu' and seans='" + sEANSDataGridView.SelectedCells[0].Value.ToString() + "'";
            object oku = denetle.ExecuteScalar();
            Convert.ToString(oku);

           
                foreach (Control ctrl in groupBox1.Controls)
                {
                    if (ctrl.GetType() == typeof(Button))
                    {
                        Button bt = (Button)ctrl;
                        if (bt.Text == oku.ToString())
                        {
                            ctrl.BackColor = System.Drawing.Color.Red;
                        }
                        else
                        {
                            ctrl.BackColor = System.Drawing.Color.Green;
                        }
                    }
                }
 
Fakat işte ExecuteScalar()  sadece bir değer dönderdiği için sadece bir koltuk geliyor.Ama ben aynı seans ta ki örneğin 09:30 da ki tüm dolu koltukların yanmasını istiyorum..
                      Bir türlü yapamadım yardımcı olursanız çok sevinicem.


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 05 Mayıs 2009 Saat 14:17
Bu olayı çözebilecek kimse yok mu arkadaşlar


Mesajı Yazan: emrahbaba
Mesaj Tarihi: 05 Mayıs 2009 Saat 15:08
sen datanı göndermen lazım biraz karmaşık sql yazmışsın.
Şöyleki birinde direk kolon adı olarak a2 yazmışsın birinde koltuk diye.
Datanı veya örnek projeni gönderirsen gerekli kodu yazarız.
Birde butonlar formun üzerinde önceden ayarlımı. Yoksa sen kendinmi oluşturuyorsun kodla



-------------
Emrah BABAYİĞİT


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 05 Mayıs 2009 Saat 15:25

benım gonderdıgım dosyayı duzenleyebılırsın



-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: emrahbaba
Mesaj Tarihi: 05 Mayıs 2009 Saat 15:56
Orjinalini yazan: dmrc1143

benım gonderdıgım dosyayı duzenleyebılırsın



senin yaptığın kod eğer satırları koltuk adı sayarsak ve buton isimleri olarak koltuk isimleri kullanılırsa doğru.
                        string a = tablo.Rows["deneme"].ToString();
                        Controls[a].BackColor = Color.Red;
bu kodla form üzerindeki control bulunup rengi değiştirmişsin. Eğer arkadaşda bu şekilde satılan kolonları satır satır bir tabloya işliyorsa selectle satılanları çağırıp hepsini senin yaptığın gibi bir döngüye sokup işaretleme yapabilir.

Not:
Fakat biraz database kullanım hataların var. Mesela oledbcommand'ı kullanmana gerek yok ama iki yerde de oluşturmuşsun. İkinci yerde insert işlemi yaparken dataadaptor oluşturup fill etmeye gerek yoktu. Direk sadece command objesi oluşturulup .ExecuteNonQuery() denebilir.Fill ederek bu metodu dataadaptore çağırtmış oluyorsun.


-------------
Emrah BABAYİĞİT


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 05 Mayıs 2009 Saat 20:06

arkadaşlar data mı yolluyorum bakarsanız sevinirim yarına kadar bitirmem lazım projeyi :(

http://rapidshare.com/files/229500807/database.rar.html


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 05 Mayıs 2009 Saat 20:10
[quote\Fakat biraz database kullanım hataların var. Mesela oledbcommand'ı kullanmana gerek yok ama iki yerde de oluşturmuşsun. İkinci yerde insert işlemi yaparken dataadaptor oluşturup fill etmeye gerek yoktu. Direk sadece command objesi oluşturulup .ExecuteNonQuery() denebilir.Fill ederek bu metodu dataadaptore çağırtmış oluyorsun. [/quote]
 
fazla command nesneleri aliskanliktan geeliyor biliyorum fazla oldugunu ama hep hemen o acele ile koyuyorum digeri ise execucenonquery metodu direk isletiyo benim yaptigim ise disconnect database yani exequtenonquery olmadan yapma denilebilir bide bu disconnect isleme alistigimdan bunu kullaniyorum elestirin icinde tessekkur ediyorum
 
quitarwolf`a gelince iste yaptigim o yontemi alip kendi projene gore duzenlersen ve projene eklersen sorun kalmaz neden bukadar tirmaladan anlamadim :)


-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: guitarwolf
Mesaj Tarihi: 07 Mayıs 2009 Saat 12:18
http://www.csharpnedir.com/forum2/member_profile.asp?PF=13994&FID=16 - dmrc1143   yolladığınız kodları aynen uyguladım fakat yine olmadı projeyi bugün bitirmem gerekiyor bi türlü hala yapamadım.
 
kodlar şu  şekilde lütfen yardımcı olun:(
 
for (int i = 0; i < sinema_set.SALONLAR.Rows.Count; i++)
                {
                   

                        OleDbConnection baglan_a2 = new OleDbConnection();
                        baglan_a2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data\\adoyazilim.mdb";
                        string sorgula_a2 = "select *from SALONLAR";
                        baglan_a2.Open();
                        OleDbCommand kontrolet_a2 = new OleDbCommand(sorgula_a2, baglan_a2);
                        kontrolet_a2.CommandText = "select koltuk from SALONLAR where seans='" + sEANSDataGridView.SelectedCells[0].Value.ToString() + "' and film='" + label5.Text + "' and tarih='" + label2.Text + "' and bosmu='DOLU'";
                        OleDbDataReader oku = kontrolet_a2.ExecuteReader();
                        while (oku.Read())
                        {
                            string a = sinema_set.SALONLAR.Rows["koltuk"].ToString();
                        string b = a.ToString();
                        Controls.BackColor = Color.Red;
                        }
                    }


Mesajı Yazan: anafori
Mesaj Tarihi: 07 Mayıs 2009 Saat 15:12
sorun çözüldümü bilmiyorum ama aklıma direk şöle bişi geldi. Database de her butonun bir karşılığı var anladığım kadaryla.. Butona basıldığı zaman, database de onunla ilişkili yeri mesela 1 yapsın..

Diğerleri 0 olarak kalır.. Sonra tekrardan o butonların olduğu sayfanın load ında bir sorguyla database de 1 olan butonların rengini kırmızı yap die bişi diebilirsin..

kolay bir yöntem bence..
yardımcı olabildiysem sevinirim..


Mesajı Yazan: dmrc1143
Mesaj Tarihi: 09 Mayıs 2009 Saat 11:20
ben burda disconnect databese baglantısı yaptım sen dırek baglantı acmıssın aradakı farktan dolayı sorun olusabılır

-------------
Ibrahim Ethem DEMIRCI| WEB Developer | ASP.NET | C#
Web: http://www.iedmrc.com | Code for Food


Mesajı Yazan: mutsuzman_55
Mesaj Tarihi: 09 Mayıs 2009 Saat 16:36
anafori arkadaşımızın dediği gibi yapabilirsin benimde otel otomasyn projesi var er odanın odadurum alanı var bunları 1-0 değerleriyle kontrol edip tutulmuş odayı kırmızı boş odayı yeşil gösteriyorum bu alanı yaparsan o alanı 0 olanları bi listbox atarsın 1 olanalrı başka sonra butonun text ile karşılaştırıp ona göre butona renk verebilirsin  bi listbox örnek kod veriyim
 kolay gelsin...
void odaolustur()
        {
            int satir = 1;
            int sutun = 2;
           
            Button tb = new Button();
            for (int i = 0; i < listBox1.Items.Count; i++)
            {


                if (i % 9 == 0)
                {
                    satir++;
                    sutun = 0;
                }

                tb = new Button();
                tb.Font = new Font("Arial", 8F, FontStyle.Bold);
                tb.Name = "tb" + i.ToString();
                tb.TabIndex = i;
                tb.Text = listBox1.Items.ToString();

                tb.Size = new System.Drawing.Size(40, 40);
                Point p = new System.Drawing.Point(tb.Size.Width + (sutun - 1) * tb.Width+20, tb.Size.Height + (satir - 2) * tb.Height-20);
                tb.Location = p;
                tb.FlatStyle = FlatStyle.Popup;
                tb.Click += new System.EventHandler(this.button1_Click);
                panel2.Controls.Add(tb);
                tb.BackColor = Color.Green;
                sutun++;
                tb.Enabled = false;
                for (int x = 0; x < listBox2.Items.Count; x++)
                {
                    if (tb.Text == listBox2.Items[x].ToString())
                    {
                        tb.BackColor = Color.Red;

                    }
                }
                for (int x = 0; x < listBox3.Items.Count; x++)
                {
                    if (tb.Text == listBox3.Items[x].ToString())
                    {
                        tb.BackColor = Color.Yellow;

                    }
                }
            }

            satir = 0;
            sutun = 0;
        }


-------------
İmzam Yog parnak bassam :)


Mesajı Yazan: Lord Mashadow
Mesaj Tarihi: 09 Mayıs 2009 Saat 17:10
kontrolet.CommandText = "select koltuk from SALONLAR where seans='"   + sEANSDataGridView.SelectedCells[0].Value.ToString()  + "'";

            OleDbDataReader m_Reader = kontrolet.ExecuteReader();

            while (m_Reader.Read())
            {
                string m_Koltuk = m_Reader["koltuk"].ToString();

                switch (m_Koltuk)
                {
                    case "A2":
                        {
                            // A2 tuşunu kırmızı yap
                            break;
                        }

                    case "A4":
                        {
                            // A4 tuşunu kırmızı yap
                            break;
                        }
                }
            }

-------------

Yalnızlık paylaşılmaz, paylaşılırsa yalnızlık olmaz.


Mesajı Yazan: Cuneyt Dogru
Mesaj Tarihi: 09 Mayıs 2009 Saat 17:50
Bu işin en kolay yolu otomatiğe bağlamaktır.Tek tek koltukları kontrol edersen işin içinden çıkamazsın.

En basit şekilde butonları kodla foruma ekleyip tag değerlerinede koltuk numaralarını yazarsın.Daha sonra buton tıklandığında tag değerini bir listeye eklersin.Kaydet dediğinde bu listedeki koltuk numaralarını ayraç kullanarak ayırıp bir text halinde veri tabanında tek bir sütüna yazarsın.Okurkende ayracı kullanarak numaraları ayırır ve formdaki butonların tag değerlerini kontrol ederek seçili olması gerekenleri istediğin şekilde düzenliyebilirsin.


Mesajı Yazan: siyah_inci
Mesaj Tarihi: 10 Mayıs 2009 Saat 12:43
Orjinalini yazan: Cuneyt Dogru

Bu işin en kolay yolu otomatiğe bağlamaktır.Tek tek koltukları kontrol edersen işin içinden çıkamazsın.

En basit şekilde butonları kodla foruma ekleyip tag değerlerinede koltuk numaralarını yazarsın.Daha sonra buton tıklandığında tag değerini bir listeye eklersin.Kaydet dediğinde bu listedeki koltuk numaralarını ayraç kullanarak ayırıp bir text halinde veri tabanında tek bir sütüna yazarsın.Okurkende ayracı kullanarak numaraları ayırır ve formdaki butonların tag değerlerini kontrol ederek seçili olması gerekenleri istediğin şekilde düzenliyebilirsin.
 
bu fikre katılmakla birlikte ayraç okuma işi kafa karıştıcı oluyorsa teksatır yerine yeni bir tabloda teksütunda satırlarada kayıt edip ordan veri tabanınından sıralı olarak döngü ile hem okuyup hemde kaydedilen butonun rengini değiştirebilirsin...



Sayfayı Yazdır | Pencereyi Kapat

Bulletin Board Software by Web Wiz Forums version 8.03 - http://www.webwizforums.com
Copyright ©2001-2006 Web Wiz Guide - http://www.webwizguide.info