Обновление ComboBox после добавления данных из ChildForm - PullRequest
0 голосов
/ 04 февраля 2009

Мне не удается обновить ComboBox после добавления новых данных в базу данных Access.

Вот код, который я использую для добавления новых данных:

private void btnAddUser_Click(object sender, EventArgs e)
{
        AccountForm actFrm = new AccountForm();

        if (actFrm.ShowDialog() == DialogResult.OK)
        {
            try
            {
                this.oleDbDataAdapter1.InsertCommand.CommandText =
                    "INSERT INTO userTable (AccountName, Username, PopServer, PopPort, Psswrd, SmtpServer, SmtpPort, Email)" +
                    "VALUES     ('" + actFrm.txtAccName.Text + "','" + actFrm.txtUsername.Text + "','" + actFrm.txtPop3.Text + "','" + actFrm.txtPop3Port.Text + "','" + actFrm.txtPassword.Text + "','" + actFrm.txtSmtp.Text + "','" + actFrm.txtSmtpPort.Text + "','" + actFrm.txtEmail.Text + "')";

                //open the bridge between the application and the datasource
                this.oleDbConnection1.Open();

                this.oleDbDataAdapter1.InsertCommand.Connection = oleDbConnection1;

                //execute the query 
                this.oleDbDataAdapter1.InsertCommand.ExecuteNonQuery();

                //close the connection
                this.oleDbConnection1.Close();

                MessageBox.Show("User Added Successfully");  //inform the user
                //tried here to refresh and even open close the myConn connection. to no avail
            }
            catch (System.Data.OleDb.OleDbException exp)
            {
                //close the connection
                this.oleDbConnection1.Close();

                MessageBox.Show(exp.ToString());
            }
      }
}

Ответы [ 2 ]

2 голосов
/ 04 февраля 2009

Использует ли ваш BindingSource набор данных? Если это так, вам нужно выполнить вставку через DataSet и, возможно, обновить источник привязки. Если вы сделаете это таким образом, вы также избежите дублирования логики вставки.

В качестве альтернативы, вы можете просто обновить DataSet, но этот метод не использует возможности DataSet и приведет к большому дублированию кода.

0 голосов
/ 15 апреля 2010

У меня недавно была такая же проблема в VB.NET. Я обнаружил, что установка значения dasasoure на Nothing (я полагаю, на N #), а затем присвоение его списку объектов решило проблему.

т.е.

  attendanceDataFiles.DataSource = Nothing
  attendanceDataFiles.DataSource = myFileList.files
...