我正在使用VS2005 ASP.NET C#和SQL Server 2005。
我的网页上有一个GridView和几个标签。
我能够通过以下方式将行数的值分配到标签中:
UserFound.Text = GridView1.Rows.Count.ToString();
但是,我想将另一个值分配给另一个标签,该标签计算列 Role 中的值等于“admin”时的行数。
我该怎么办?示例和示例代码将不胜感激。
修改
int admincount=0;
foreach (DataRow oRow in GridView1.Rows)
{
if (GridView1.Rows["User Role"].ToString().Trim().Contains("Admin"))
{
admincount++;
}
}
AdminFound.Text = admincount.ToString();
我收到错误:
The best overloaded method match for System.Web.UI.WebContols.GridViewCollection.this[int] has some invalid arguments
和
Argument '1': canot convert from 'string' to 'int'
答案 0 :(得分:1)
嗯..
我假设您使用ADO.Net
在GridView1.DataBind()
之前,对Gridview执行for
循环或将要绑定到Gridview1
的数据表
int admRows=0;
for(int i=0;i<datatable1.Rows.Count;i++)
{
if(datatable1.Rows[i]["adminColumn"].ToString().Trim().ToLower().Contains("admin"))
{
admRows++;
}
}
admFound.Text=admRows.ToString();
GridView1.DataSource=datatable1;
GridView1.DataBind();
P.S。 datatable1.Rows[i]["adminColumn"]
或datatable1.Rows["adminColumn"][i]
..我不确定.. google it
答案 1 :(得分:1)
您可以使用select语句运行sqlCommand.ExecuteScalar(),如:
select Count(UserRole) where UserRole = 'Admin'
您返回的值可用作标签文字;