别名怎么生效

liangchengfck1 2012-09-17 11:23:24
string sql = string.Format("SELECT SUM(Statistical_number) AS Expr1,Statistical_data_Start FROM Statistical where Statistical_name='张三' GROUP BY Statistical_data_Start");
SqlCommand comm = new SqlCommand(sql, dbc.con);
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
{
dr = dt.NewRow();
dr["Expr1"] = (int)reader["Expr1"];
dr["Statistical_data_Start"] = (string)reader[1].ToString();

dt.Rows.Add(dr);
}
Expr1 怎么实现可以识别呢!
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-09-17
  • 打赏
  • 举报
回复
你完全不用这样写
while (reader.Read())
{
dr = dt.NewRow();
dr["Expr1"] = (int)reader["Expr1"];
dr["Statistical_data_Start"] = (string)reader[1].ToString();

dt.Rows.Add(dr);
}

直接
dt.Load(reader)
就可以了
孟子E章 2012-09-17
  • 打赏
  • 举报
回复
dr["Expr1"] = (int)reader["Expr1"];

是 dr["Expr1"]错误,不是后面的错误

你的Datatable里面没有定义Expr1列
popotans 2012-09-17
  • 打赏
  • 举报
回复
SELECT SUM(Statistical_number) AS 'Expr1' 加个引号 试试呢
  • 打赏
  • 举报
回复
dr["Expr1"] 问题应该出现在这把
你要确保你的DataTable中包含Expr1该列,另外你完全可以利用SqlDataAdapter 直接Fill到DataTable中,而不需要再去创建新的DataTable,加列,然后在添加行.
liangchengfck1 2012-09-17
  • 打赏
  • 举报
回复
程序读取的时候说我这个列不存在,就是我用as后面的Expr1别名,到这里就错了!
gaomeng320 2012-09-17
  • 打赏
  • 举报
回复
你这个reader["Expr1"]就可以啊
  • 打赏
  • 举报
回复
没看懂,给查询的列定义个名称 as NewColumnName 取或者绑定的时候直接用NewColumnName 新名称即可,还要怎么识别?
liangchengfck1 2012-09-17
  • 打赏
  • 举报
回复
不加 as可以了!做的是折现统计图!chart控件!求每段时间的sum 比如2012-12-12到2013-12-12 这段时间的“张三”一共用了100G流量!用折线图表示出来,现在好了,谢谢各位了!不知道为什么不加as就可以了!晕!

61,655

社区成员

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

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

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

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