Nowe sortowanie w kolumnie w dataGridView1

0

Cześć,
Tworząc własny projekt w C# łącze się z baża danych MS SQL, pobieram dane, sortuję i wyświetlam na różne sposoby.
Wszystkie dane wyświetlam w dataGridView1:

 public partial class Form5 : Form
    {
        SqlConnection con;
        public Form5()
        {
            InitializeComponent();
            con = new SqlConnection(" server=TMS; initial catalog=TMSCLIENT4; user = sa ; password = ptms ");
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
           try
            {
                con.Open();
                 SqlDataAdapter sqlData = new SqlDataAdapter
                ("SELECT DATEADD(DAY, DATEDIFF(DAY, 0, WorkDateTime), 0) as Dzień,  'DZIEŃ' AS Okres,SUM(Weight) AS Produkcja, AVG(Performance) AS Wydajność, COUNT(BeltMoveTime) AS 'Czas_ruchu_taśmy' FROM[TMSCLIENT4].[dbo].[vwConveyorScaleMinute] WHERE VehicleId = 2 AND WorkDateTime BETWEEN '2021-09-16 01:00:00.000'AND '2021-09-30 23:00:00.000' AND BeltMoveTime = 1 GROUP BY dateadd(DAY, datediff(DAY, 0, WorkDateTime), 0)ORDER BY dateadd(DAY, datediff(DAY, 0, WorkDateTime), 0)", con);
                DataTable dtbl = new DataTable();
                sqlData.Fill(dtbl);
                dataGridView1.DataSource = dtbl;
               con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
}
}

i wszytsko łądnie działa.
Prolbem pojawił się w chwili gdy chcę dodac jedną kolumne w której będą inne parametry sortowania.
Próbowałem dodać nowa kolumnę w dataGridView1 i tam zaimportowac od nowa dane z bazy posortowane według innych kryteriów, lecz nie wyszło mi to.

Dlatego pytam czy to wogólę dobra droga ? aby importować dane do data|GridView1 dwa razy czy jest na no inne rozwiązanie

0

Podaj na konkretnym przykładzie, co chcesz osiągnąć.

0

Posiadamy tabele z wynikami:
screenshot-20211123111651.png
zakładamy:
Mamy "Czas_ruchu_taśmy" liczony tylko gdy "Wydajność " jest wieksza od 10 używając
COUNT(BeltMoveTime) AS 'Czas_ruchu_taśmy'
AND Performance >10

SELECT 
DATEADD(DAY, DATEDIFF(DAY, 0, WorkDateTime), 0) as Dzień, 
'DZIEŃ' AS Okres,
SUM(Weight) AS Produkcja, 
AVG(Performance) AS Wydajność,
**COUNT(BeltMoveTime) AS 'Czas_ruchu_taśmy'**


FROM[TMSCLIENT4].[dbo].[vwConveyorScaleMinute] 

WHERE VehicleId = 2
AND WorkDateTime BETWEEN '2021-09-16 01:00:00.000' AND '2021-09-30 23:00:00.000' 
AND BeltMoveTime = 1 
**AND Performance >10**
GROUP BY dateadd(DAY, datediff(DAY, 0, WorkDateTime), 0)
ORDER BY dateadd(DAY, datediff(DAY, 0, WorkDateTime), 0)

Teraz chcę stworzyć nową kolumne o nazwie "Czas_ponieżej_wydajności" w dataGridView1 i tam sortowac dane z bazy według kryteeriun Performance <10 i Performance >0. Oczywiście chcę dodać kilka column z różnymi Kryteriami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1