检查 ExecuteScalar 结果是否存在的最有效方法是什么? [英] What is the most efficient way to check an ExecuteScalar result for existence?

查看:42
本文介绍了检查 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.FillSchemaDbConnection.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆