#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, если это поможет