读书人

请教DataTable.Compute方法

发布时间: 2012-09-17 12:06:51 作者: rapoo

请问,DataTable.Compute方法
DataTable.Compute 方法:http://msdn.microsoft.com/zh-cn/library/system.data.datatable.compute.aspx


string strConn = "server = '(local)';database=Person;integrated security = true";
string strSQL = "SELECT * FROM 客户表";
SqlDataAdapter da = new SqlDataAdapter(strSQL, strConn);
DataTable dt = new DataTable("新表");
da.Fill(dt);
int i_个数 = (int)dt.Compute("COUNT(*)","电子邮件 IS NOT NULL");
Console.WriteLine(i_个数);
Console.ReadKey();


此代码,把数据填充到DataTable ,然后调用Compute方法查询电子邮件不为空的总数目,
红色代码为什么报错:“聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数”

如果改成COUNT(姓名)就不报错,这是为什么,不允许用“*”吗?

[解决办法]
COUNT(*)不行,没有指定是哪列,没法统计
[解决办法]

探讨
DataTable.Compute 方法:http://msdn.microsoft.com/zh-cn/library/system.data.datatable.compute.aspx


string strConn = "server = '(local)';database=Person;integrated security = true";
string strSQL = ……

[解决办法]
指定列,不然没法统计
[解决办法]
在创建表达式时,使用 ColumnName 属性来引用列
计算使用基于SQL的语法,但它不是一个完整的SQL实现。 COUNT(*)是不被支持的。所以要指定具体的列
[解决办法]
C# code
dt.Select("电子邮件 is not null").Count() 

读书人网 >C#

热点推荐