i use the access and find product but if there is many same product name how can ı list these
please write for access database in c# my normaly codes are below

baglan.Open();

            // Sorgu içinde urun isimli bir değişken kullanmışsın ancak değişkene değer atamamışsın. Sorguya null olarak giriyor. Alttaki satırı eklemen lazım
            urun = textBox1.Text;

            veri = new OleDbCommand("select urun,model,adet,boyut,aciklama from ogrenci where urun='" + urun + "';", baglan);
            oku = veri.ExecuteReader();



            while (oku.Read())
            {

              textBox1.Text= oku["urun"].ToString();
              textBox2.Text = oku["model"].ToString();
                textBox3.Text = oku["adet"].ToString();
                textBox4.Text = oku["boyut"].ToString();
                textBox5.Text = oku["aciklama"].ToString();




            }


            oku.Close();
            baglan.Close();

Edited 5 Years Ago by __avd: Added [code] tags.

Use a datagrid, a repeater or possibly a literal control dependng on how you want to display the results (and whether this is for a web page or form application). Catch your results from the database in a dataTable via a dataAdapter and link that to your chosen output control.

OleDbDataAdapter da = new OleDbDataAdapter(veri);
DataTable dt = new DataTable();
da.Fill(dt); // load results into the dataTable

Then, depending on your chosen display method, use the dataTable to show the results on page.

the error message there is already exist didnt close file

these codes are below

using System;
using System.Data.OleDb;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace som
{
    public partial class ara : Form
    {
        public ara()
        {
            InitializeComponent();
        } OleDbConnection baglan = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\öztürk\Desktop\som\som\b.accdb");

        OleDbCommand veri; OleDbDataReader oku;

        string urun;



        private void button1_Click(object sender, EventArgs e)
        {

                baglan.Open();

                // Sorgu içinde urun isimli bir değişken kullanmışsın ancak değişkene değer atamamışsın. Sorguya null olarak giriyor. Alttaki satırı eklemen lazım
                urun = textBox1.Text;

                veri = new OleDbCommand("select urun,model,adet,boyut,aciklama from ogrenci where urun='" + urun + "';", baglan);
                oku = veri.ExecuteReader();

                 OleDbDataAdapter da = new OleDbDataAdapter(veri); DataTable dt = new DataTable(); da.Fill(dt); // load results into the dataTableOleDbDataAdapter da = new OleDbDataAdapter(veri);







                try
                {




                while (oku.Read())
                {

                                        textBox1.Text = oku["urun"].ToString();
                                        textBox2.Text = oku["model"].ToString();
                                        textBox3.Text = oku["adet"].ToString();
                                        textBox4.Text = oku["boyut"].ToString();
                                        textBox5.Text = oku["aciklama"].ToString();




                }



                oku.Close();
                baglan.Close();

            }
            catch
            {
                MessageBox.Show(":D");
            }


        }

        private void ara_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'bDataSet1.ogrenci' table. You can move, or remove it, as needed.
            this.ogrenciTableAdapter.Fill(this.bDataSet1.ogrenci);

        }




    }
}

Edited 3 Years Ago by pyTony: fixed formatting

He wants to list the products not select just one so DISTINCT won't help.
The problem is with your dataAdapter.

OleDbDataAdapter da = new OleDbDataAdapter(veri);
 DataTable dt = new DataTable();
 da.Fill(dt); // attempt to open an already open connection.

You have already opened the connection with baglan.Open(). da.Fill() then tries to do the same thing but can't because the connection is already open.
You need to decide if you want to use the reader or the dataTable, at the moment you have both and they're just getting in each others way.
Your while(oku.Read()) code makes no sense either. If more than one record is returned the textboxes will simply display the last one in the reader (all records will populate the textboxes but will be instantly overwritten by the next one).

what must ı do on this can you write all off codes for me please
ım written again

using System;
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 STOK
{
    public partial class araa : Form
    {
        public araa()
        {
            InitializeComponent();
        }
        OleDbConnection baglan = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\öztürk\Desktop\STOK1\program.accdb");

        OleDbCommand veri;
 OleDbDataReader oku;

        string urun;

        private void button1_Click(object sender, EventArgs e)
        {
             baglan.Open();

            // Sorgu içinde urun isimli bir değişken kullanmışsın ancak değişkene değer atamamışsın. Sorguya null olarak giriyor. Alttaki satırı eklemen lazım
             urun = comboBox1.Text;

            veri = new OleDbCommand("select urun,model,sayi,boyut,aciklama from stok where urun='" + urun + "';", baglan);
            oku = veri.ExecuteReader();



            while (oku.Read())
            {

                comboBox1.Items.Add(oku["urun"].ToString());

              textBox2.Text = oku["model"].ToString();
                textBox3.Text = oku["sayi"].ToString();
                textBox4.Text = oku["boyut"].ToString();
                textBox5.Text = oku["aciklama"].ToString();




            }


            oku.Close();
            baglan.Close();




    }

        private void araa_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("KANEPE");
            comboBox1.Items.Add("OTURMA GRUBU");
            comboBox1.Items.Add("YATAK ODASI");
            comboBox1.Items.Add("YEMEK ODASI");
            comboBox1.Items.Add("MASA");
            comboBox1.Items.Add("SANDALYE");
            comboBox1.Items.Add("YATAK");
            comboBox1.Items.Add("YASTIK");
            comboBox1.Items.Add("YORGAN");
            comboBox1.Items.Add("UYKU SETİ");
            comboBox1.Items.Add("HALI");
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


        }
    }

Edited 3 Years Ago by Dani: Formatting fixed

This article has been dead for over six months. Start a new discussion instead.