how do i fix this horriable working c# access code : I have multiple people connecting to my access database and if two people happen to be searching at the same time i get an error so i did this to fix it and it cut down on the error alot but i still get it some times is there a better way ?

    public partial class Form2 : Form
    {
        private OleDbConnection connection = new OleDbConnection();
        public Form2()
        {
            InitializeComponent();
            connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=S:\Documents\2015\Db12.accdb";
            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
            conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=S:\Documents\2015\Db12.accdb";
        }
        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            if (m.Msg == WM_NCHITTEST)
                m.Result = (IntPtr)(HT_CAPTION);
        }

        private const int WM_NCHITTEST = 0x84;
        private const int HT_CLIENT = 0x1;
        private const int HT_CAPTION = 0x2;

        private void lRead(string query, ListBox lbox)
        {
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = query;
            OleDbDataReader reader = command.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    lbox.Items.Add(reader["UAS"].ToString());
                }
            }
            catch (Exception ex)
            { MessageBox.Show("error LREAD" + ex); }
            finally
            {
                if (reader != null)
                { reader.Dispose(); }
            }
        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {

            try
            {
                connection.Open();
                listBox1.Items.Clear();
                lRead($"select * from Table1 where UAS Like '%{textBox1.Text}%'", listBox1);
                lRead($"select * from Table1 where Customer Like '%{textBox1.Text}%'", listBox1);
                lRead($"select * from Table1 where Description Like '%{textBox1.Text}%'", listBox1);
                lRead($"select * from Table1 where Detail Like '%{textBox1.Text}%'", listBox1);
                //select * from SomeTable Where SomeColumn Like '* PARMA *' dont use * use % 
                connection.Close();
            }
            catch
            {
                System.Threading.Thread.Sleep(500);
                try
                {
                    connection.Open();
                    listBox1.Items.Clear();
                    lRead($"select * from Table1 where UAS Like '%{textBox1.Text}%'", listBox1);
                    lRead($"select * from Table1 where Customer Like '%{textBox1.Text}%'", listBox1);
                    lRead($"select * from Table1 where Description Like '%{textBox1.Text}%'", listBox1);
                    lRead($"select * from Table1 where Detail Like '%{textBox1.Text}%'", listBox1);
                    //select * from SomeTable Where SomeColumn Like '* PARMA *' dont use * use % 
                    connection.Close();
                }
                catch
                {
                    System.Threading.Thread.Sleep(500);
                    try
                    {
                        connection.Open();
                        listBox1.Items.Clear();
                        lRead($"select * from Table1 where UAS Like '%{textBox1.Text}%'", listBox1);
                        lRead($"select * from Table1 where Customer Like '%{textBox1.Text}%'", listBox1);
                        lRead($"select * from Table1 where Description Like '%{textBox1.Text}%'", listBox1);
                        lRead($"select * from Table1 where Detail Like '%{textBox1.Text}%'", listBox1);
                        //select * from SomeTable Where SomeColumn Like '* PARMA *' dont use * use % 
                        connection.Close();
                    }
                    catch
                    {

                        MessageBox.Show("Error too many People Searching ");
                    }

                }

            }
        
