我是Sql的初学者,我正在尝试SQL Group By语句,我的要求如下。
Table Structure <br>
USerID int <br>
BrowserName nvarchar(200) <br>
BrowserVersion nvarchar <br>
LoggedOntime Time
这是我的要求。我想根据用户ID选择所有详细信息以及它应该按浏览器名称分组。我试着回复它的后续查询。但是如何在visual studio中使用它来在Gridview中显示为每个浏览器的组。当用户单击gridview中的组时,它应显示该浏览器的所有详细信息。
例如。如果我单击FireFox然后它应该显示Firfox组的详细信息,包含特定用户ID的所有版本和LoggedOnTime详细信息
select
BrowserName,
LoggedOnTime,
BrowserVersion
from
BrowserSession
inner join Users on UserId = Users.UsersId
where
UserId=21
group by
BrowserName,
LoggedOnTime,
BrowserVersion
order by
BrowserName,
LoggedOnTime
答案 0 :(得分:1)
如果查询为static
,您可以这样做,否则您可以在查询中使用parameters
:
SqlConnection con = new SqlConnection(connectionString);
string sqlQuery = "select BrowserName, LoggedOnTime, BrowserVersion"
+ " from BrowserSession inner join Users on UserId=Users.UsersId"
+ " where UserId=21 group by BrowserName, LoggedOnTime,BrowserVersion order by BrowserName, LoggedOnTime";
SqlCommand cmd = new SqlCommand(sqlQuery, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "TableName");
GridView1.DataSource = ds;
GridView1.DataBind();
使用参数:
string sqlQuery = "select BrowserName, LoggedOnTime, BrowserVersion"
+ " from BrowserSession inner join Users on UserId=Users.UsersId"
+ " where UserId=@userID group by BrowserName, LoggedOnTime,BrowserVersion order by BrowserName, LoggedOnTime";
SqlCommand cmd = new SqlCommand(sqlQuery, con);
cmd.Parameters.AddWithValue("@userID", 21);
答案 1 :(得分:0)
您可以为每个组创建数据网格并插入父网格。将子数据网格绑定到特定数据组。
以下是几个链接。