Удалить повторяющиеся строки из таблицы данных без новой кнопки - PullRequest
0 голосов
/ 19 января 2019

У меня есть сетевое представление, у него есть два столбца, и я получаю его значения из моей таблицы SQL-Server (3 столбца).Можно ли удалить повторяющиеся строки, не используя новую кнопку?

Это мой код:

                    foreach (DataRow r in d.Rows)
                    {
                        dgw.Rows.Add(r["c1"].ToString() + " " + r["c2"].ToString(), r["c3"]);
                    }

Спасибо за ваши ответы ...

Редактировать: Мне нужноответ с кодом C #, а не sql.

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Вы хотите избежать дублирования записей, отображаемых в виде таблицы данных, так почему бы не выбирать только эти отдельные записи при запросе данных.

string q = "SELECT DISTINCT c1, c2, c3 FROM mytable......";

И, скорее, итерируя по каждой строке в datatable, вы можете просто использовать DataSource свойство DataTable например,

SqlDataAdapter s = new SqlDataAdapter(q, c);
DataTable d = new DataTable();
s.Fill(d);
dgw.DataSource = dt;

Edit1:

Вы можете проверить строку перед ее добавлением в представление таблицы данных, например

foreach (DataRow r in d.Rows)
{
    bool existingRow = dgw.Rows
                          .Cast<DataGridViewRow>().AsEnumerable()
                          .Any(x =>
                                Convert.ToString(x.Cells["Column1"].Value).Split(' ')[0] == r["c1"].ToString() &&
                                Convert.ToString(x.Cells["Column1"].Value).Split(' ')[1] == r["c2"].ToString() &&
                                Convert.ToInt32(x.Cells["Column2"].Value) == Convert.ToInt32(r["c3"])
                           );

     if (!existingRow)
         dgw.Rows.Add(r["c1"].ToString() + " " + r["c2"].ToString(), r["c3"]);
}

Где:

  • Column1 и Column2 - это столбцы в виде сетки данных.
  • c1, c2 и c3 - столбцы в таблице данных
0 голосов
/ 19 января 2019
  • Эти строки не являются дубликатами. Вы должны обработать это в своем SQL-запросе
  • Каков ваш сценарий?Если вы группируете по столбцу1, как насчет столбца 2?
  • Сумма?Максимум?Среднее?какой?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...