刪除網格中的一行會導致一個名爲「System.InvalidOperationException」的錯誤。在網格中刪除ObservableCollection中的一行失敗
該行在我的數據庫中被成功刪除,但當網格過期時,我的可觀察集合發生上述錯誤。
這裏是我的代碼:
UserControlStaff.xaml.cs,而你是枚舉該集合
private void deleteUserData_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
var grid = (DataGrid)sender;
if (grid.SelectedItems.Count > 0)
{
var Res = MessageBox.Show("Are you sure you want to delete " + grid.SelectedItems.Count + " Users?", "Deleting Records", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if (Res == MessageBoxResult.Yes)
{
try
{
string connectionString = ConfigurationManager.ConnectionStrings["MyApp.Properties.Settings.ConString"].ConnectionString;
string queryString = string.Empty;
using (SqlConnection connection = new SqlConnection(connectionString))
{
foreach (var row in grid.SelectedItems)
{
User user = row as User;
queryString = "DELETE FROM Users WHERE ID = " + user.ID;
SqlCommand cmd = new SqlCommand(queryString, connection);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("Users");
sda.Fill(dt);
mUserDataObject.Remove(user);
}
}
}
catch
{
throw;
}
MessageBox.Show(grid.SelectedItems.Count + " Users have being deleted!");
}
}
}
}
什麼是內部異常? –
System.InvalidOperationException:集合已被修改。枚舉操作可能無法執行。 – user3524628
什麼是「mUserDataObject」?爲什麼要創建新的'DataTable'並填充它? –