[英]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.