Обновление Sqldataadapter из datagridview c# проблема
Попробуйте обновить данные из DataGridView с помощью SqlDataAdapter, но при нажатии кнопки Update(Save) появляется следующая ошибка
объект DataAdapter.Свойство SelectCommand должно быть инициализировано.
Что я уже пробовал:
Мой код на кнопке загрузки и сохранения
SqlDataAdapter adp; SqlCommandBuilder cmdBld; DataTable dtEditMember = new DataTable(); private void butLoadMember_Click(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(dbConn)) { conn.Open(); using (adp = new SqlDataAdapter()) { if (txtEditMemberVehiNo.MaskCompleted) { adp.SelectCommand = new SqlCommand("Select * From Master Where VehiNo = @VehiNo"); adp.SelectCommand.Parameters.Add("@VehiNo", SqlDbType.NVarChar).Value = txtEditMemberVehiNo.Text; } else if (!string.IsNullOrWhiteSpace(txtEditMemberCustName.Text)) { adp.SelectCommand = new SqlCommand("Select * From Master Where CustName = @CustName"); adp.SelectCommand.Parameters.Add("@CustName", SqlDbType.NVarChar).Value = txtEditMemberCustName.Text; } adp.SelectCommand.Connection = conn; adp.Fill(dtEditMember); } } if (dtEditMember.Rows.Count > 0) { dgvEditMember.DataSource = dtEditMember; dgvEditMember.Columns["VehiNo"].HeaderText = "Vehicle No"; butLoadMember.Enabled = false; butUpdateMember.Enabled = true; } else { txtEditMemberVehiNo.Clear(); txtEditMemberCustName.Clear(); dgvEditMember.Columns.Clear(); MessageBox.Show("Member Not Found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void butUpdateMember_Click(object sender, EventArgs e) { cmdBld = new SqlCommandBuilder(adp); if (dtEditMember.GetChanges() != null) { adp.Update(dtEditMember); MessageBox.Show("Changes Done."); } }
sameer549
проверьте эту ссылку один раз,
http://www.c-sharpcorner.com/uploadfile/61b832/sqldataadapter-update-method/
CHill60
Если эта ошибка возникает в butUpdateMember_Click, то это происходит потому, что вы не инициализировали ничего, кроме конструктора команд...посмотрите на весь код в butLoadMember_Click ...
AjayBaroda
я попытался добавить оператор update в butLoadMember_Click, а также попытался в butUpdateMember_Click, но ни один из них не работает. Пожалуйста, укажите подсказку о наилучшем решении. Например, где и какое заявление об обновлении я должен включить.
sameer549
я думаю, что в butUpdateMember_Click вам не хватает команды update перед строкой adp. Update(dtEditMember)
это должно быть что-то вроде
// выберите команду обновить
АДП.UpdateCommand=ЦМД;
// обновление источника данных
adp. Update(dtEditMember);