日期:2014-05-19  浏览次数:20975 次

DataTable与原表数据类型一致的问题?
ds.Tables[0]各个字段与原数据库中的表各字段,数据类型应是一致的,用如“row[1]-row[2] "这样加减被提示,“对象不能加减”,只好用Convert转换后才行,现在是需要一列的数据相加,是不是要每个数据都要转换才能计算。


------解决方案--------------------
请参阅:DataColumn.Expression属性.
------解决方案--------------------
DataSet1.Tables( "Orders ").Columns( "OrderCount ").Expression = "Count(OrderID) "
------解决方案--------------------
for example:

DataTable dt = new DataTable();
DataColumn column = new DataColumn( "sno ", typeof(System.String));
dt.Columns.Add(column);
column = new DataColumn( "chinese ", typeof(System.Int32));
dt.Columns.Add(column);
column = new DataColumn( "english ", typeof(System.Int32));
dt.Columns.Add(column);
dt.Rows.Add( "aaa ", 80, 90);
dt.Rows.Add( "bbb ", 70, 80);
dt.Rows.Add( "ccc ", 80, 60);

//求三个人的英语总成绩(即第三列进行相加)
object obj = dt.Compute( "sum(english) ", null);
int total = Convert.ToInt32(obj);
Console.WriteLine(total );