2014-10-31 8 views
0

Я хочу удалить запись из DataGridView, когда выбрана запись. я получаю эту ошибку исключения, когда я использую следующий код,C# Datagridview с использованием winforms

string conStrings = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ImpiDb.mdf;Integrated Security=True;Connect Timeout=30"; 
string sql = "Select * from tblImpi"; 
con = new SqlConnection(conStrings); 
con.Open(); 
dataAdapter = new SqlDataAdapter(sql, con); 
//ImpiDbDataSet impds = new ImpiDbDataSet(); 
ds = new DataSet(); 
SqlCommandBuilder cmdb = new SqlCommandBuilder(dataAdapter); 
dataAdapter.Fill(ds, "tblImpi"); 
BindingSource bndS = new BindingSource(); 
bndS.DataSource = ds.Tables["tblImpi"]; 
impdg.DataSource = bndS; 

Кнопка удаления

private void btnDelete_Click(object sender, EventArgs e) 
{ 

    if (MessageBox.Show("I you sure you want to delete this record?","Delete",MessageBoxButtons.YesNo)==DialogResult.Yes) 
    { 
     impdg.Rows.RemoveAt(impdg.SelectedRows[0].Index); 
     dataAdapter.Update(ds,"tblImpi"); 
    } 
} 
+3

И вопрос .....? – Tim

+0

положите попытку ... поймать блок внутри btnDelete_Click. – Josef

ответ

0

Я полагаю, вы хотите удалить запись, но удалить его из сетки не удаляет его из таблицы ,

Не используйте DataGridView напрямую для взаимодействия с вашим источником данных, но делайте это так.

var table = ds.Tables["tblImpi"]; 
var row = impdg.SelectedRows[0]; 
var item = (DataRowView)row.DataBoundItem; 
item.Delete(); 

// I am not 100% sure that row.DataBoundItem returns a DataRowView, 
// if it returns a DataRow you can use 
table.Rows.Remove(item); 
// instead of item.Delete(); 
+0

Atleast Мне удалось решить эту проблему из моего кода. –

0

это ответ на вопрос.

private void btnDelete_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       if (MessageBox.Show("I you sure you want to delete this record?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
       { 
        impdg.Rows.RemoveAt(impdg.SelectedRows[0].Index); 
        dataAdapter.Update(dt1); 



       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
Смежные вопросы