如何计算datagrid里某一列的值

Remex_Love_Lilie 2005-09-01 09:05:52
我用string TotalMoney=DS.Tables[0].Compute("Sum(Total_Money)","").ToString();来计算
但是对Compute函数不了解!后面的""里面该写什么??
...全文
238 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
CuiQingShaShou 2005-09-01
  • 打赏
  • 举报
回复
你重新做一个页面,只用一DataGrid绑定数据,其它的什么操作都不做,跟踪调试
上面的方法不会有错的
注意DataGrid中Cell的下标是从0开始
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
<asp:datagrid id="Manage_Order_DataGrid" runat="server" AllowPaging="True" Width="600px" AutoGenerateColumns="False"
DataKeyField="Order_Code" CellPadding="1" BorderWidth="1px" BorderStyle="Solid" BorderColor="#698CC3">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#F0F0F0"></AlternatingItemStyle>
<ItemStyle BackColor="#FEFEFE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#698CC3"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="会员号">
<HeaderStyle HorizontalAlign="Center" ForeColor="White" Width="100px"></HeaderStyle>
<ItemTemplate>
<div align="center"><%#DataBinder.Eval(Container.DataItem,"Member_ID")%>
</div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Order_Code" HeaderText="订单号">
<HeaderStyle HorizontalAlign="Center" ForeColor="White" Width="400px"></HeaderStyle>
<ItemStyle Width="500px"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="编辑">
<HeaderStyle ForeColor="White" Width="40px"></HeaderStyle>
<ItemTemplate>
<a href='Edit_Order.aspx?Order_Code=<%# DataBinder.Eval(Container.DataItem, "Order_Code")%>'>
修改</a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle ForeColor="White" Width="40px"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
CuiQingShaShou 2005-09-01
  • 打赏
  • 举报
回复
那你一定是在DataGrid里边嵌入了Html代码,比如控件单行显示,固定宽度之类的像如下之类的代码
"<span style=\"overflow:hidden;white-space:nowrap</span>";
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
顶啊,谁来帮忙啊
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
没有用,一直是那个错误!
CuiQingShaShou 2005-09-01
  • 打赏
  • 举报
回复
int sum=0;
foreach(System.Web.UI.WebControls.DataGridItem lsItem in dataGrid.Items)
{
if(lsItem .ItemIndex>-1)
{
sum+=int.Parse(lsItem.Cells[3].Text)
}
}
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
晕了,还是输入字符串错误这个问题
数据表:
Member_ID Product_Code Product_Num Total_Money
001 BW001 10 100
001 BW002 20 45
我要计算Total_Money的总和
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
没有啊,都是整数!
CuiQingShaShou 2005-09-01
  • 打赏
  • 举报
回复
假定dataGrid是一个DataGrid对象,且绑定数据
现在要计算第一列的和:
int sum=0;
foreach(System.Web.UI.WebControls.DataGridItem lsItem in dataGrid.Items)
{
if(lsItem .ItemIndex>-1)
{
sum+=int.Parse(lsItem.Cells[0].Text)
}
}

egonzou 2005-09-01
  • 打赏
  • 举报
回复
CuiQingShaShou(摧情杀手),你的运行会出现输入字符串的格式不正确的错误

======================================

难道有浮点数?那就把int改为float吧
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
我把代码贴出来!!
string MemberID=null;
MemberID=Request.Cookies["Member_ID"].Value;
SqlConnection Conn=DB_Operate.Create_Connection();
Conn.Open();
SqlDataAdapter Manage_Order_Cmd=new SqlDataAdapter("Select * From Order_Code Where Member_ID='"+MemberID+"' Order By Order_Code Desc",Conn);
DataSet DS=new DataSet();
Manage_Order_Cmd.Fill(DS,"Order_Code");
this.Manage_Order_DataGrid.DataKeyField="Order_Code";
this.Manage_Order_DataGrid.DataSource=DS.Tables["Order_Code"].DefaultView;
this.Manage_Order_DataGrid.DataBind();
//获取会员报单总记录数
string OrderRecord=this.Manage_Order_DataGrid.Items.Count.ToString();
this.Order_Record.Text=OrderRecord;
int sum=0;
foreach(System.Web.UI.WebControls.DataGridItem lsItem in this.Manage_Order_DataGrid.Items)
{
sum+=int.Parse(lsItem.Cells[3].Text);
}
//int TotalMoney=(int)DS.Tables["Order_Code"].Compute("Sum(Total_Money)","true");
this.Order_Total_Money.Text=sum.ToString();
Conn.Close();
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
CuiQingShaShou(摧情杀手),你的运行会出现输入字符串的格式不正确的错误
swordragon 2005-09-01
  • 打赏
  • 举报
回复
Compute("Sum(Total)", 此处为where条件);
CuiQingShaShou 2005-09-01
  • 打赏
  • 举报
回复
假定dataGrid是一个DataGrid对象,且绑定数据
现在要计算第一列的和:
int sum=0;
foreach(System.Web.UI.WebControls.DataGridItem lsItem in dataGrid.Items)
{
sum+=int.Parse(lsItem.Cells[0].Text)
}
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
int TotalMoney=(int)DS.Tables["Order_Code"].Compute("Sum(Total_Money)","true");
我这么写
它总是出错:无效的聚合函数 Sum()和类型 String 的用法
solsolsol 2005-09-01
  • 打赏
  • 举报
回复
计算用来传递筛选条件的当前行上的给定表达式。
[Visual Basic]
Public Function Compute( _
ByVal expression As String, _
ByVal filter As String _
) As Object
[C#]
public object Compute(
string expression,
string filter
);
[C++]
public: Object* Compute(
String* expression,
String* filter
);
[JScript]
public function Compute(
expression : String,
filter : String
) : Object;
参数
expression
要计算的表达式。
filter
要限制在表达式中进行计算的行的筛选器。
返回值
Object,设置为计算结果。
备注
expression 参数需要聚合函数。例如,以下是合法表达式:
Count(Quantity)
但是以下表达式不合法:
Sum (Quantity * UnitPrice)
如果必须针对两列或多列执行操作,则应该创建 DataColumn,并将它的 Expression 属性设置为适当的表达式,然后针对结果列使用聚合表达式。在这种情况下,假定有一个名为“total”的 DataColumn,并且 Expression 属性设置为:
“Quantity * UnitPrice”
Compute 方法的表达式参数将为:
Sum(total)
第二个参数 filter 确定在表达式中使用哪些行。例如,如果该表包含名为“colDate”的日期列,则可用以下表达式限制这些行:
colDate > 1/1/99 AND colDate < 17/1/99
有关为这两个参数创建表达式的规则,请参见 DataColumn 类的 Expression 属性。
示例
[Visual Basic, C#] 以下示例针对识别号为 5 的销售人员,对名为“Total”的列的值求和。
[Visual Basic]
Private Sub ComputeBySalesSalesID(ByVal myDataSet As DataSet)
' Presumes a DataTable named "Orders" that has a column named "Total."
Dim myTable As DataTable
myTable = myDataSet.Tables("Orders")
' Declare an object variable.
Dim objSum As Object
objSum = myTable.Compute("Sum(Total)", "EmpID = 5")
End Sub
[C#]
private void ComputeBySalesSalesID(DataSet myDataSet){
// Presumes a DataTable named "Orders" that has a column named "Total."
DataTable myTable;
myTable = myDataSet.Tables["Orders"];
// Declare an object variable.
object objSum;
objSum = myTable.Compute("Sum(Total)", "EmpID = 5");
}

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧