C # заменить текстовое поле по умолчанию в DataGridView с помощью Combobox

Я все еще довольно новичок в C #, но я работаю над приложением WinForms, которое извлекает данные из базы данных Access. В настоящее время я работаю над формой, которая загружает содержимое из таблицы в DataGridView динамически, используя DataAdapter и DataSet.

Пока что форма работает как положено. В настоящее время, чтобы добавить новую запись, вы должны ввести данные в каждую ячейку подряд. Что я хочу сделать, это заменить пару столбцов (текстовое поле) со списком. Другими словами, вместо ручного ввода данных, используйте выпадающий список и выберите запись из списка. Я также хочу сгенерировать элементы данных комбинированного списка из SQL, но если это слишком много, я могу просто вручную кодировать каждый элемент.

Я могу добавить комбинированный список в таблицу данных во время выполнения, но это не то, что я пытаюсь сделать. И поскольку столбцы создаются во время выполнения с помощью кода, я не уверен, как изменить столбец, следуя этому методу.

Так, например, я хочу заменить ячейки текстового поля для «Рейтинг» на элементы комбинированного списка, такие как «R», «PG-13», «PG» и т. Д.

public partial class frmBulkInsert : Form
{
    OleDbConnection conn;
    OleDbDataAdapter da;
    DataSet ds;
    OleDbCommandBuilder cmdbl;


    public frmBulkInsert()
    {
        InitializeComponent();
    }

    private void frmBulkInsert_Load_1(object sender, EventArgs e)
    {
        // Load all records from the table into the datagridview.
        try
        {
            dataConnectionSettings();              
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK,   MessageBoxIcon.Error);
        }
    }


    private void button1_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void ConnectToDatabase()
    {
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=C:\Users\ronniejones.JONES\Documents\Access Projects\Movie_2013.mdb";
    }

    private void btnUpdateRecords_Click(object sender, EventArgs e)
    {
        try
        {
            //DataSet changes = (ds).GetChanges();

            cmdbl = new OleDbCommandBuilder(da);
            //da.Update(ds, "Movie_2013");
            int numRows = da.Update(ds, "Movie_2013");
            MessageBox.Show(numRows + " Record(s) Updated", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK,  MessageBoxIcon.Error);
        }
    }

private void dataConnectionSettings()
    {
        //DataGridViewComboBoxColumn cboColumn;
        conn = new OleDbConnection();
        ConnectToDatabase();
        conn.Open();
        da = new OleDbDataAdapter("SELECT ID, Title, [Minutes], Rating, Category,     Format, Actor1, Actor2, Actor3, Actor4, [Status] FROM [Movies] ORDER BY ID", conn);
        ds = new DataSet();
        da.Fill(ds, "Movie_2013");
        dataGridView1.DataSource = ds.Tables[0];

Ответы на вопрос(2)

Ваш ответ на вопрос