检查 ExecuteScalar 结果是否存在的最有效方法是什么? [英] What is the most efficient way to check an ExecuteScalar result for existence?
本文介绍了检查 ExecuteScalar 结果是否存在的最有效方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看到了这个代码:
object objvalid = cmd.ExecuteScalar();
//made it this far - must not have thrown an exception
retVal = true;
...但我认为其中一个可能更好:
...but am thinking one of these might be better:
object objvalid = cmd.ExecuteScalar();
retVal = (null != objvalid);
...
Int32 anybodyThere = (Int32) cmd.ExecuteScalar();
retVal = anybodyThere > 0;
推荐答案
我想你已经回答了你自己的问题.没有比这更好的了
I think you answered your own question. You can't get much better than this
object objvalid = cmd.ExecuteScalar();
retVal = (null != objvalid);
但是,从您的评论看来,您真正想要的是知道表中是否存在列名.为此,我建议您考虑使用 DbDataAdapter.FillSchema
或 DbConnection.GetSchema
反而.这两个选项都允许您针对所有列对数据库执行单个查询,而不是为每一列重新查询数据库.
However, from your comment, it seems like what you really want is to know if a column name exists on a table. For this purpose I suggest you look into using DbDataAdapter.FillSchema
or DbConnection.GetSchema
instead. Both options allow you to execute a single query against the database for all columns rather than re-querying the database for every column.
这篇关于检查 ExecuteScalar 结果是否存在的最有效方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文