Я вставляю запись в базу данных, и все работает нормально, за исключением обновления DataSource
для ComboBox
.
Здесь мой код для обновления выпадающего списка:
nStateTableAdapter1.Adapter.Update(stateCodeDataSet, "NState");
cmbStateCode.DataSource = nStateBindingSource1.DataSource;
cmbStateCode.DisplayMember = "NState.CountryCode";
cmbStateCode.ValueMember = "NState.CountryCode";
cmbStateCode.Refresh();
Вышеуказанный код не работает для меня.
Может кто-нибудь помочь мне, как обновить Combobox с новым значением, вставленным в базу данных?
РЕДАКТИРОВАТЬ:
private void btnSave_Click(object sender, EventArgs e)
{
if (cmbStateCode.Text.ToString().Trim() == "" && txtCountryName.Text.ToString().Trim() == "")
{
MessageBox.Show("Please enter a valid data.", "Office Automation System", MessageBoxButtons.OK, MessageBoxIcon.None);
}
else
{
btnSave.Enabled = false;
btnEdit.Enabled = true;
try
{
string Query;
sqlCon.Open();
if (isEditMode)
Query = "UPDATE NState SET CountryName='" + txtCountryName.Text.ToString().Trim() + "' WHERE CountryCode='" + cmbStateCode.Text + "'";
else
Query = "INSERT INTO NState VALUES ('" + cmbStateCode.Text + "','" + txtCountryName.Text.ToString().Trim() + "')";
SqlCommand sqlCmd = new SqlCommand(Query, sqlCon);
sqlCmd.ExecuteNonQuery();
cmbStateCode.DropDownStyle = ComboBoxStyle.DropDownList;
MessageBox.Show("Record saved successfully.", "Office Automation System", MessageBoxButtons.OK, MessageBoxIcon.None);
}
catch
{
MessageBox.Show("Error occured while saving record.\nPlease check the StateCode for duplicate.", "Office Automation System", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally
{
sqlCon.Close();
}
try
{
sqlCon.Open();
fillStateInfo();
nStateTableAdapter1.Adapter.Update(stateCodeDataSet, "NState");
cmbStateCode.DataSource = nStateBindingSource1.DataSource;
cmbStateCode.DisplayMember = "NState.CountryCode";
cmbStateCode.ValueMember = "NState.CountryCode";
cmbStateCode.Refresh();
}
catch (Exception ex)
{
}
finally
{
sqlCon.Close();
}
}
РЕДАКТИРОВАТЬ1:
sqlCon.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from NState", sqlCon);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
if (isEditMode)
nStateTableAdapter1.Adapter.UpdateCommand = builder.GetUpdateCommand();
else
nStateTableAdapter1.Adapter.InsertCommand = builder.GetInsertCommand();
nStateTableAdapter1.Adapter.Update(stateCodeDataSet, "NState");
fillStateInfo();