在sql编辑器里没有报错,但是程序执行的时候报,因为查询的是个公式,如果没有的列我想查询出来为0,sql编辑器得到的也是0,程序就报错
------解决思路----------------------
应先判断一下该列是否存在,再进行下面的操作就行了
//如果是dataset
if()ds.Tables[0].Columns.Contains("a"))
{
//....
}
//如果是DataTable
if (dt.Columns.Contains("列名"))
{
//....
}
------解决思路----------------------
估计你返回不同格式了吧,比如有数据是什么格式内容返回,没数据直接返回0,这样你查询是可以的,ADO.NET就不行了
------解决思路----------------------
2楼给你的方法就是告诉你用ado.net查询出所有列的dataset或datatable,不要select指定列,然后再从dataset或datatable判断列是否存在。否则ado.net肯定出错,这是最基础的常识。
------解决思路----------------------
你只要select一次就够了,放到datatable中,不要每次操作都到数据库查询,因为公式基本是不变化的,如果更新公式,那就再更新datatable对象。