簡體   English   中英

C#刪除SQL綁定的datagridview中的一行

[英]C# delete a single row in an SQL bound datagridview

我嘗試了許多解決方案,其中僅聲明刪除了一行,但是在我的VS2017 C#中,從所選行到DataGridView的末尾,所有行均被刪除。 如果我有5行並且刪除了第4行,則第4和第5行都將被刪除。 我可以毫無問題地添加行,也可以刪除表並創建表,但是刪除單行數據似乎不可行。

請幫忙,我已經來這幾天了...

private void DDataTable_UserDeletedRow( object sender, DataGridViewRowEventArgs e )
{
  try
  {
    // Want the last operation to be completed
    dbDataSetBindingSource.EndEdit();
    //dbTableAdapter.Update( dbDataSet );

    if ( selectedCellRow > 0 )
    {
      DataRowView drv = ( DataRowView )dbDataSetBindingSource.Current;
      DataRow drToDelete = drv.Row;
      dbDataSet.MyTable.Rows.Remove( drToDelete );
    // This removed all remaining rows
    //  DDataTable.Rows.Remove( this.DDataTable.SelectedRows[ 0 ] );
    // This removed all remaining rows 
    //  dbDataSetBindingSource.RemoveCurrent();
    // This gave an error "Can't remove items not in the list?
    //  dbDataSetBindingSource.Remove( selectedRowStr );

      dbDataSetBindingSource.EndEdit();
      dTableAdapter.Update(dbDataSet);
    }
    else
      MessageBox.Show( "Error in delete row, bad index." );
  }
  catch (Exception ex)
  {
  //  CancelEventArgs myE = new CancelEventArgs();
  //  DDataTable_Validating( sender, myE );
    string myStr = "Error in deleting row\n" + ex.Message;
    MessageBox.Show( myStr, "User Delete a Row" );
  }
}

您可以調用drToDelete.Delete() ,然后通過調用dbDataSet.MyTable.AcceptChanges();更新數據集dbDataSet.MyTable.AcceptChanges();

或者您可以致電:

dbDataSet.MyTable.Rows.RemoveAt(dbDataSetBindingSource.Position);

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM