Hello @JohnCTX
I created a simple code sample that a) keeps code in your form clean from data operations b) simplified all code.
Form code
using System;
using System.Windows.Forms;
namespace Access_mdb
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void LoadDataButton_Click(object sender, EventArgs e)
{
var cb = new ComboBox()
{
Left = 10,
Top = 10,
DataSource = DataOperations.Read()
};
Controls.Add(cb);
}
}
}
Data class
using System;
using System.Collections.Generic;
using System.Data.OleDb;
using System.IO;
namespace Access_mdb
{
public class DataOperations
{
public static string _connectionString =
$"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "db1.mdb")};";
public static List<string> Read()
{
var list = new List<string>();
using (var cn = new OleDbConnection() {ConnectionString = _connectionString})
{
using (var cmd = new OleDbCommand() {Connection = cn})
{
cmd.CommandText = "SELECT [Consonant Determiner Required] FROM DeterminersWithA;";
cn.Open();
var reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(reader.GetString(0));
}
}
}
return list;
}
}
}