Рейтинг:
2
OriginalGriff
Лучше всего работать с базовыми данными, а не с самим DataGridView:
private void butDelete_Click(object sender, EventArgs e)
{
if (MyDataGridView.DataSource is DataTable dt)
{
List<int> deleteThese = new List<int>();
DateTime remove = new DateTime(2019, 2, 7);
int index = 0;
foreach (DataRow row in dt.Rows)
{
if (row["Appointment"] is DateTime apt && apt == remove)
{
deleteThese.Add(index);
}
index++;
}
foreach (int i in deleteThese)
{
dt.Rows[i].Delete();
}
}
}
Member 14013003
извините забыл что я хочу для базы данных mysql
OriginalGriff
- Да? И что же?
BillWoodruff
Привет, возможно, вы захотите указать читателю, что используете более новую функцию сопоставления шаблонов C# 7 оператора ' is.
OriginalGriff
Мне это вроде как начинает нравиться, после первоначального нежелания. Определение области видимости-хорошая идея, но я должен признать, что она все еще затрудняет определение понятия "dt".
И будучи в состоянии сказать это:
если (строка["встреча"] имеет тип datetime АПТ &амп;&амп; кв == удалить)
Очень удобный.
BillWoodruff
Привет, я медленно попадаю "в зону" с новыми функциями, хотя мне приходится делать сознательные усилия, чтобы вспомнить их. Мне кажется интересным, что даже в последней версии VS 2019 Ent и с использованием последнего ReSharper: DGV.Источником данных является строка dt ... не помечается как предварительная компиляция.
OriginalGriff
Почему вы ожидаете, что это будет так? Источник данных-это объект, поэтому он может быть приведен к чему угодно во время компиляции, он только терпит неудачу во время выполнения.
BillWoodruff
Вы, конечно, правы. :) Но не кажется ли вам немного сумасшедшим, что компилятор знает типы для grid и table, и ни один из них никогда не может быть ничем иным, кроме "того, что они есть" ... и все же, вам может сойти с рук сравнение со строкой ?
OriginalGriff
Хотя на самом деле он не "знает" тип, вот в чем проблема. Фреймворк знает, с чем он может работать, но компилятор этого не делает, он просто работает с типом свойства как определено - object - и не настаивает на том, что это коллекция или DataReader. И технически, строка-это набор значений char. :смеяться:
BillWoodruff
И все же ... .. Держу пари, если бы вы увидели такой код: его безумие выскочило бы на вас, как гекконы могут прыгать, когда включен свет :)
OriginalGriff
О да! Но мы лучшие разработчики, чем компьютеры (или большинство QA-запросов, к сожалению).