как использовать count и выбрать все при использовании объединения и отображения количества в метке

#c# #sql #select #count #union-all

#c# #sql #выберите #количество #объединение-все

Вопрос:

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

 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=QWERTYSQLEXPRESS;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:

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

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

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