как использовать count и выбрать все при использовании union и show count в метку - PullRequest
0 голосов
/ 13 марта 2019

Я хотел бы попросить о помощи по этому поводу.Я использую объединение всех с условием, где мой запрос будет отображаться в виде таблицы.Мой вопрос: есть ли способ, которым он будет подсчитывать строки, которые он сгенерирует, и отображать счетчик в метке или текстовом поле под сеткой данных?Это мой код:

string query = @"Select * FROM
                    (
                        SELECT date AS [Date],b.fname+' '+b.mname+' '+b.lname AS Person,
                        b.pk+ ', '+b.by+', '+b.my AS Address, b.sex,
                        'PoNa' AS [Transaction] FROM dbo.POST AS a INNER JOIN
                        [dbo].PERCORD AS b ON b.idp = a.idp

                        UNION ALL
                        SELECT date AS [Date],b.fname+' '+b.mname+' '+b.lname AS Person,
                        b.pk+ ', '+b.by+', '+b.my AS Address, b.sex,
                        'PreNa' AS [Transaction] FROM dbo.PRENA AS a INNER JOIN
                        [dbo].PERCORD AS b ON b.idp = a.idp

                        UNION ALL
                        SELECT date AS [Date],b.fname+' '+b.mname+' '+b.lname AS Person,
                        b.pk+ ', '+b.by+', '+b.mty AS Address, b.sex AS Sex,
                        'Check' AS [Transaction] FROM dbo.CHECK AS a INNER JOIN
                        [dbo].PERCORD AS b ON b.idp = a.idp
                    )
                        as T where date between '" + fromdt.Value.ToString() + "' and '" + todt.Value.ToString() + "' and [Transaction] = '" + ttypecb.Text + "'";

                using (SqlConnection xcon = new SqlConnection(@"Server=QWERTY\SQLEXPRESS;Database=QWERTY;Integrated Security=SSPI;"))
                {
                    using (SqlCommand xcom = new SqlCommand(query, xcon))
                    {
                        SqlDataAdapter xdapter = new SqlDataAdapter(xcom);
                        try
                        {
                            xcon.Open();
                            DataTable xlist = new DataTable();
                            xdapter.Fill(xlist);
                            trans.DataSource = xlist;

                        }
                        catch (Exception)
                        {
                            throw;
                        }
                        finally
                        {
                            xcon.Close();
                        }
                    }
                }
            } 

1 Ответ

0 голосов
/ 13 марта 2019

Мой вопрос: есть ли способ, которым он будет считать строки, которые он сгенерирует, и покажет счет в метке или текстовом поле под сеткой данных?Это мой код

В DataTable есть все строки после вызова метода Fill.Таким образом, вы можете использовать slist.Rows.Count для получения этой информации.

Я не верю, что есть место, где DataGridView автоматически показывает общее количество строк.Вы можете отобразить его, используя любой Control на ваш выбор.Вы можете использовать номера строк в DataGridView, если это поможет

...