none
CheckBox Veritabanına Kaydetme RRS feed

  • Soru

  • Merhaba arkadaşlar...

    CheckBox eğer işaretliyse, access veritabanında Evet/Hayır bölümüne işaret koymasını istiyorum. 

    Verileri aşağıdaki gibi kaydediyorum, sıkıntı yok burada...

    cmd.Parameters.Add("@ID", OleDbType.VarWChar).Value = label1.Text;

    Yapamadığım aşağıdaki olaydır. Aşağıdaki kod parçasında yapmak istediğim; eğer checkBox1 işaretli ise, işaretli olarak kaydetsin, değilse işaretsiz olarak kaydetsin.

    if (checkBox1.Checked=true)
                    {
                        cmd.Parameters.Add("@A_B", OleDbType.VarWChar).Value = checkBox1.Checked=1;
                    }

    else 

           {

     cmd.Parameters.Add("@A_B", OleDbType.VarWChar).Value = checkBox1.Checked=0;

    }

    Bunu olayı nasıl yapabilirim?

    11 Eylül 2013 Çarşamba 00:19

Yanıtlar

  • Veritabanına tipini sayı olarak belirlediğin bir alana, checkbox seçim özelliğini checkstate'i int'e cast ederek atabilirsin ve okuyabilirsin. Örnek:

                OleDbConnection con = new OleDbConnection(@"....");
                OleDbCommand cmd = new OleDbCommand("insert into tablo (name,cek) values (?,?)", con); con.Open();
                cmd.Parameters.AddWithValue("@name", "oğuz");
                cmd.Parameters.AddWithValue("@cek", (int)checkBox1.CheckState);
                cmd.ExecuteNonQuery();
    
    
    //////
    
    
    
                OleDbConnection con = new OleDbConnection(@"....");
                OleDbCommand cmd = new OleDbCommand("select name,cek from tablo", con); con.Open();
                OleDbDataReader dr = cmd.ExecuteReader();
                while (dr.Read()) 
                {
                    this.checkBox1.CheckState = (System.Windows.Forms.CheckState)dr.GetInt32(1);
                }
                dr.Close();

    11 Eylül 2013 Çarşamba 05:37
    Moderatör

Tüm Yanıtlar

  • Veritabanına tipini sayı olarak belirlediğin bir alana, checkbox seçim özelliğini checkstate'i int'e cast ederek atabilirsin ve okuyabilirsin. Örnek:

                OleDbConnection con = new OleDbConnection(@"....");
                OleDbCommand cmd = new OleDbCommand("insert into tablo (name,cek) values (?,?)", con); con.Open();
                cmd.Parameters.AddWithValue("@name", "oğuz");
                cmd.Parameters.AddWithValue("@cek", (int)checkBox1.CheckState);
                cmd.ExecuteNonQuery();
    
    
    //////
    
    
    
                OleDbConnection con = new OleDbConnection(@"....");
                OleDbCommand cmd = new OleDbCommand("select name,cek from tablo", con); con.Open();
                OleDbDataReader dr = cmd.ExecuteReader();
                while (dr.Read()) 
                {
                    this.checkBox1.CheckState = (System.Windows.Forms.CheckState)dr.GetInt32(1);
                }
                dr.Close();

    11 Eylül 2013 Çarşamba 05:37
    Moderatör
  • Evet oldu teşekkürler...

    Bir sorum daha olacaktı, dediğiniz yoldan gitmeye çalıştım ama olmadı.

    Aynısı update için nasıl olacak? Aşağıda verdiğim kod parçasında ALAN2 ve ALAN3 tamamdır ama ALAN1 checkBox olayı. CheckBox'ta update nasıl olacak?

    cmd = new OleDbCommand("update TABLOADI set ALAN1='"+(int)checkBox1.CheckState+"',

    ALAN2='" + textBox1.Text + "'

    where

    ALAN3=" + label8.Text + "", con);
    cmd.ExecuteNonQuery();

    11 Eylül 2013 Çarşamba 09:53
  • Onu da parametre kullanarak yapacaksın. Üstteki örnekten bir farkı yok.
    11 Eylül 2013 Çarşamba 13:52
    Moderatör