繁体   English   中英

我怎么知道数据库中是否存在这样的值? (ADO.NET)

[英]How can I know if such value exists in database? (ADO.NET)

例如,我有一个表,并且有一列名为“标签”。 我想知道此列中是否存在“编程”值。 如何在ADO.NET中做到这一点?

我这样做:

OleDbCommand cmd = new OleDbCommand("SELECT * FROM table1 WHERE Tags='programming'", conn);
OleDbDataReader = cmd.ExecuteReader();
接下来我该怎么办?

使用SELECT COUNT(*)并检查结果。 (并使用ExecuteScalar)

(假设您知道如何设置和使用连接)

SELECT  TOP 1 1
FROM    table1
WHERE   Tags='programming'

更好的版本,使用参数而不是字符串连接是一个好习惯,请参阅sql注入

OleDbCommand cmd = new OleDbCommand("SELECT TOP 1 1
 FROM table1 WHERE Tags=?", conn);
cmd.Parameters.Add("@p1", OleDbType.VarChar).Value = "Programming";
OleDbDataReader rdr = cmd.ExecuteReader();
if(rdr.Read())
    // record exists
else
   //Not exists

您应该做两件事:

如果仅检查是否存在名为Programming的标记,则应更改查询以返回COUNT而不是返回所有行。

SELECT TOP 1 Column1 FROM Table1 WHERE Tags = 'Programming'

您应该在阅读器中检查返回的集合,以查看是否有任何行。 如果存在,则表示该标签存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM