Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在VB.NET中,检查数据库中是否存在值的最佳方法是什么?_Asp.net_Sql Server_Database_Vb.net - Fatal编程技术网

Asp.net 在VB.NET中,检查数据库中是否存在值的最佳方法是什么?

Asp.net 在VB.NET中,检查数据库中是否存在值的最佳方法是什么?,asp.net,sql-server,database,vb.net,Asp.net,Sql Server,Database,Vb.net,我熟悉在VB.NET中连接数据库以获取数据,但这次我有一个稍微不同的任务。过去,我通过点击数据库从表中获取值以在应用程序中使用(名称、地址、价格等),但现在我只需要访问数据库以检查是否存在值。我不知道最好的办法。有没有一种好的、有效的方法可以做到这一点,而不需要从数据库中实际获取任何数据 为了进一步澄清,当用户在文本框(这是一个ASP.NET网站项目)中输入值时,我想检查并查看数据库中是否存在特定代码。如果代码存在,我将通过弹出框通知用户 编辑: 如果我在SQL Server中创建了一个存储过程

我熟悉在VB.NET中连接数据库以获取数据,但这次我有一个稍微不同的任务。过去,我通过点击数据库从表中获取值以在应用程序中使用(名称、地址、价格等),但现在我只需要访问数据库以检查是否存在值。我不知道最好的办法。有没有一种好的、有效的方法可以做到这一点,而不需要从数据库中实际获取任何数据

为了进一步澄清,当用户在文本框(这是一个ASP.NET网站项目)中输入值时,我想检查并查看数据库中是否存在特定代码。如果代码存在,我将通过弹出框通知用户

编辑:


如果我在SQL Server中创建了一个存储过程,如果该值存在则返回true,如果不存在则返回false(或0或1),那么如何在VB.NET中使用该返回值

从您的TableName中选择COUNT(*),其中CODE=@CODE

我可能在这里遗漏了一些东西,因为它看起来太简单了!听起来,您所需要的只是沿着Select Field from Table where Field=Value的行执行一个简单的SQL查询。命令执行应返回所选的行数,因此如果返回值大于0,则该项存在

在运行时构造SQL命令时,可以使用在文本框中输入的项来输入值

如果我错过了峰会,我道歉

从VB.net运行存储过程时的VB.net KB:-


如果您知道表的主键值或其他唯一值,我知道的检查特定记录是否存在的最快方法如下

Dim cmdText = "IF EXISTS(SELECT 1 FROM yourTable WHERE idField = @value) " & _
              "SELECT 1 ELSE SELECT 0"

Using cnn = new SqlConnection(.....)
Using cmd = new SqlCommand(cmdText, cnn)
    cnn.Open()
    cmd.Parameters.Add("@value", SqlDbType.Int).Value = 9876
    Dim result = Convert.ToInt32(cmd.ExecuteScalar())
    Dim exists = IF result = 1, True, False
    ....
End Using
End Using
这种方法最好是对符合条件的记录进行计数,因为数据库引擎可以在检查条件是否匹配后立即返回,而不是一直计数到表的末尾。但是,当然,最重要的是对执行搜索的字段进行索引


MSDN上的一些信息

您可以从column=something表中选择count(*)作为RecordCount,然后根据返回的
RecordCount
在VB应用程序中执行逻辑。您能告诉我们您使用的是哪个数据库吗?根据数据库的不同,有不同的方法来完成这项任务,其中一些方法非常快,如果您有很多方法,则不推荐其他方法records@Steve这是一个SQL Server数据库。我想我提到过。对不起,我应该说得更清楚些。你的回答没有错;我只是想知道这是否是实现目标的最佳方式。我将编辑这个问题。谢谢你的回答。没问题-我会漫步到我的电脑洞穴,加载VB给我一个执行SP作为函数的例子-这很简单,但我记不起最上面的语法-变老了!谢谢你的详细回答!我现在要测试它。你不会碰巧知道如何从客户端调用这个VB.NET函数,是吗(JavaScript)?对不起,不,我对JavaScriptGood解决方案知之甚少,尽管使用
如果存在
有点过分,因为它需要对表进行排序和完全扫描。在这种情况下,一个简单的选择或一个
计数就足够了。例如:
从idField=@value
@zaggler所在的表中选择1,如果WHERE不匹配?这将返回NULL,从而使客户端代码复杂化(我认为)很好的解决方案,执行计划更好。