C# Yardım

Kodla Büyü

mgk_42

Site Gezgini
Mesajlar
82
Çalışmakta olduğum textboxı 0-100 arası sınırlandırmak istiyorum.
Kod:
  {
            if (((Convert.ToDouble(textBox12.Text)) < 0) || ((Convert.ToDouble(textBox12.Text)) > 100))
            {
                MessageBox.Show("YANLIŞ DEĞER ARALIĞI");
                

            }
            else if ((Convert.ToDouble(textBox12.Text)) >= 50)
            {
                textBox12.BackColor = Color.Green;
            }
            else
            {
                textBox12.BackColor = Color.Red;
            }

        }
Yukarıdaki kodu yazdığım zaman tamam istenilen değer aralığı haricinde değer girildğinde uyarı alıyorum fakat 100 üstünde bir sayı değilde mesela 20 yazıp o an vazgeçip sildiğim an hata alıyorum.Yani 20 değilde başka bir sayı yazmak istediğimde oluyor. :?: :?: :?:
 
Kod:
private void textBox1_TextChanged(object sender, EventArgs e)
       {
           int min=0,max=256;
           try
           {
               label1.Visible = false;
               int n = int.Parse(textBox1.Text);
               if (n > max || n < min)
               {
                   label1.Text="Sayı şu aralıkta olmalı: "+min.ToString()+" ve "+max.ToString();
                   label1.Visible = true;
                  // textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
               }
           }
           catch (Exception ex)
           {
               label1.Text = "Sayı girmelisiniz!";
               label1.Visible=true;
               //textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
           }
       }
 
C# da acces veri tabani baglantisini bir kere tanimlayip calistirdigimda c# daki diger formlarda da bu veritabanindan bilgi cekebilir ve kullanabilir miyim. Tanimlamalar nerde ve nasil yapilmalidir. Fikir verebilir misiniz.
 
Bir class oluşturup içine bağlantı cümlesini yazın. Class ın adı örneğin baglanti.cs olsun.

public OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=" + Application.StartupPath + "\\veritabani.accdb;Jet OLEDB:Database Password=sifre;");

Daha sonra bağlanacağınız sayfalarda aşağıdaki kodu global değişken tanımladığınız yere yazın.

baglanti baglan = new baglanti();

Geri kanlar da veritabanı işlemleri. Aşağıya bir örnek yazdım.

OleDbConnection con = baglan.con;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "select * from tablo";
con.Open();
cmd.ExecuteNonQuery();
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
textBox1.Text=dr[0].ToString();
}
con.Close();
 
Arkadaşlar bir sorum daha olacak
Kod:
try
            {
                if ((textBox1.Text.Trim() != "") && (textBox2.Text.Trim() != "") && (textBox3.Text.Trim() != ""))
                {
                    OleDbCommand kmt = new OleDbCommand();
                    bag.Open();
                    kmt.Connection = bag;
                    kmt.CommandText = "INSERT INTO takipliste(takipno,uyeno,kitapno,verilistarih,teslimtarih)VALUES('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + dateTimePicker1.Value.ToShortDateString() + "','" + dateTimePicker2.Value.ToShortDateString() + "')";
                    kmt.ExecuteNonQuery();
                    bag.Close();
                    frm1.frm3.listele();
                    MessageBox.Show("KULLANICI EKLENDİ", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    textBox1.Text = "";
                    textBox2.Text = "";
                    textBox3.Text = "";
                    this.Close();

                }
                else
                {
                    MessageBox.Show("BOŞ ALANLARI DOLDURUNUZ.", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception)
            {

                MessageBox.Show("TAKİP NUMARASINI KONTROL EDİN MEVCUT TAKİP NUMARASI VEYA BOŞ VERİ GİRİŞİ YAPAMAZSINIZ.", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Error);


            }
            finally
            {
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
            }
Yukarıdaki kod bloğundaki amacım veri kaydederken PK alanında aynısından bir kez daha giriş yapılması isteneceğinde oluşacak hatayı catch bloğuyla tanımladım.Bunda sorun yok fakat çalıştırıp denediğim zaman diyelimki veritabanımda 8 nolu kayıt varken 8 numaralı kaydı tekrar girmek istediğimde hata alıyorum buda tamam ama daha sonra tablomda olmayan numarayla textboxı düzelttiğimde kaydet dediğim zaman yine catch çalışıyor uyarı alıyorum sebebi nedir yardımcı olaiblirmisniz?
 
Hocam hallettim sorunu teşekkürler.Basitmiş ama yinede anlatıyım bir önceki mesajımda paylaştığım kod parçasında veritabanında aynı birincil anahtara ait bir veri girildiğinde try çalışmaya başlıyor sql bağlantısı kapanmadan hata alındığı için catch çalışıp bittiğinde bağlantı halen kapanmamış oluyor catch bölümüne bag.close() yazdığımızda(bendeki bağlantı adı bag olduğu için)sorunum hallolmuş oldu. :idea: :idea: :idea: :idea:
 
Kod:
OleDbDataAdapter adptr = new OleDbDataAdapter("SELECT * from direnc", bag);
            adptr.Fill(tbl);
            comboBox2.ValueMember = "deger";
            comboBox2.DisplayMember = "isim";
            comboBox2.DataSource = tbl;
            comboBox3.ValueMember = "deger";
            comboBox3.DisplayMember = "isim";
            comboBox3.DataSource = tbl;
            if (comboBox1.SelectedIndex == 0)
            {
                comboBox4.ValueMember = "carpan";
                comboBox4.DisplayMember = "isim";
                comboBox4.DataSource = tbl;
                comboBox5.ValueMember = "tolerans";
                comboBox5.DisplayMember = "isim";
                comboBox5.DataSource = tbl;

            }
            else
            {
                comboBox4.ValueMember = "deger";
                comboBox4.DisplayMember = "isim";
                comboBox4.DataSource = tbl;
                comboBox5.ValueMember = "carpan";
                comboBox5.DisplayMember = "isim";
                comboBox5.DataSource = tbl;
                comboBox6.ValueMember = "tolerans";
                comboBox6.DisplayMember = "isim";
                comboBox6.DataSource = tbl;
                comboBox7.ValueMember = "sicaklik";
                comboBox7.DisplayMember = "isim";
                comboBox7.DataSource = tbl;
            }
Arkadaşlar sorunum aynı tablodan farklı comboboxlara veri çekmek .Veri çekiyorum fakat comboboxlardan bir değer seçtiğimde tümü değişiyor. Bu sorunumu nasıl halledebilirim?
 
Veritabanını her combobox için ayrı data tablolara alıp aktardığımda sorun halloldu.Başına gelen olursa en azından düzeltsin.
 
Geri
Üst