Access Veri Tabanı /Tabloyu TextBox'a yazdırma!

Tumannobega
07-06-2007, 02:29   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: May 2006

Visual Studio 2005'te oluşturduğum bir C# windows application uygulamasında ,forma eklediğim bir textbox ta veritabanımdaki tabloyu görüntülemek istiyorum ama bir türlü yapamadım.Sorun bunu textbox 'ta görüntülemek istememden mi kaynaklanıyor.Bir türlü anlayamadım.Bu tabloyu herhangi bir component ile mi görüntülemek gerekiyor...tabloyu orijinal hali ile görüntülemenin yolu nedir?
Bu konularda bana yardımcı olursanız çok sevinirim...
Kodlarım aşağıda mevcuttur...

private void Form1_Load(object sender, EventArgs e)
        {
            ReadRecords();
        }
        public void ReadRecords()
        {
            string connectionstring = "Provider=Microsoft.JET.OLEDB.4.0;"
                +"data source=C:\\DATABASE\\schedule.mdb";
            OleDbConnection conn = new OleDbConnection(connectionstring);
            string sqlmain = "SELECT * FROM AjandaTable";
            OleDbCommand cmd = new OleDbCommand(sqlmain, conn);
            conn.Open();
            OleDbDataReader reader;
            reader = cmd.ExecuteReader();
            int columnnumber = reader.FieldCount;
            for (int i = 0; i < columnnumber; i++)
            {
                textBox1.Text += reader.GetName(i)+"\t";
            }
            
            reader.Close();
            conn.Close();
        }

Tumannobega
08-06-2007, 16:48   |  #2  
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: May 2006

Belki aynı sorunu yaşayıp çözüm bulamayanlara yardımcı olur.(Alıntıdır)Konuyla ilgili program aşağıda!


  using System.Data.OleDb;

//Access ile işlemler için gerekli isim alanını tanımladım.

namespace ADO.NET_AccessInsertveSelect_

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        // Bağlantıda ve diğer işemlerde kullanacağım nesneleri global           

        //olarak tanımladım.

OleDbConnection baglan = new OleDbConnection(); //bağlantı için

OleDbCommand sec = new OleDbCommand();    //Tablodaki kayıtları seçmek için

OleDbCommand ekle = new OleDbCommand();   //Tabloya kayıt eklemek için

OleDbDataReader oku;                     //okuma işlemini yapmak için

//Formumuza çift tıklayarak kod satırına geliyoruz.

        private void Form1_Load(object sender, EventArgs e)

        {

            //Form açılır açılmaz veri tabanına bağlantının

            //kurulması için form1_load içinde access e bağlanıyorum.

baglan.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;Data Source=d:/sirket.mdb;";

            //baglantıyı açıyorum.

            baglan.Open();

            //aşagıdaki komutu şu şekilde de kullanabiliriz.

            //sec.Connection=baglan;

            //ikiside aynı işi yapar yani sec komutunun

            //baglan ile çalışacağını#8230;

            sec = baglan.CreateCommand();

            //firmalar tablosundaki tüm kayıtlar seçiliyor.

            sec.CommandText = "SELECT * FROM firma";

            //seçilen bu kayıtlar ExecuteReader() fonksiyonu

            //DataReader nesnesi sayesinde okunuyor

            oku = sec.ExecuteReader();

            //Okuma işlemi oku butonuna tıkandığında olacağı için

            //read() fonksiyonunu altta button1_Click içinde kullanacağız.

        }

//Formumuzun üzerindeki Button1#8217;e çift tıklayarak kod satırına geliyoruz

        private void button1_Click(object sender, EventArgs e)

        {

            try

            {

              //Burada try ve catch kullanıyoruz

              //çünkü veri tabanındaki kayıtların hepsi

              //okunup okunacak veri kalmadığı zaman catch'in içindeki hata

              //oluşuyor.

                oku.Read();

                //Acsess'ki no sütununu textbox1'de göster

                textBox1.Text = "" + oku["firma no"];

                //Acsess'ki firma sütununu textbox2'de göster

                textBox2.Text = "" + oku["firma adı"];

            }

            catch (InvalidOperationException)

            {

                //veri tabanındaki tüm kayıtlar okunup

                //okunacak veri kalmadığı zaman aşağıdaki mesaj veriliyor.

                MessageBox.Show("Okunacak veri kalmadı.");

            }

        }

//Formumuzun üzerindeki Button2#8217;e çift tıklayarak kod satırına geliyoruz

        private void button2_Click(object sender, EventArgs e)

        {

            try

            {

                //Buradaki try catch'i ise hatalı veri girişini önlemek

                //için kullandık

                //Örneğin Textbox'lara veri girmeden ekle butonuna basarsak

                //catch'in içindeki mesaj verilir.

                ekle = baglan.CreateCommand();

                //textbox3'e girilen değeri firma no sütününa

                //textbox4'e girilen  değeri firma adı sütununa ekle

ekle.CommandText = "INSERT INTO firma([firma no],[firma adı]) VALUES('" + textBox3.Text+"','" + textBox4.Text + "')";           

            if (ekle.ExecuteNonQuery() == 1)

            {

   //Buradaki if i ise şunun için kullandık;

   //eğer ExecuteNonQuery fonksiyonu doğru bir şekilde çalışmışsa yani 1 se

   //yani veri doğru bir şekilde eklenmişse aşağıdaki mesajı ver.

                MessageBox.Show("Veri Eklendi.");

            }

            }

            catch(OleDbException)

            {

                //hatalı veri girişinde verilecek mesaj.

                MessageBox.Show("Hatalı veri girişi yaptınız.");

            }

        }}}

Artık programımızı çalıştırarak veri tabanındaki kayıtları okuyabilir ve kayıt ekleyebiliriz.