例如,我有一个表,并且有一个名为“Tags”的列。我想知道此列中是否存在值'编程'。我怎么能在ADO.NET中做到这一点?
我这样做了:
OleDbCommand cmd = new OleDbCommand("SELECT * FROM table1 WHERE Tags='programming'", conn);
OleDbDataReader = cmd.ExecuteReader();
接下来我该怎么办?
答案 0 :(得分:5)
使用SELECT COUNT(*)并检查结果。 (并使用ExecuteScalar)
(假设您知道如何设置连接并使用它)
答案 1 :(得分:3)
SELECT TOP 1 1
FROM table1
WHERE Tags='programming'
答案 2 :(得分:1)
更好的版本,使用参数而不是字符串连接是一个好习惯,请参阅sql injection
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
答案 3 :(得分:1)
你应该做两件事:
如果您只是检查是否存在名为Programming的标记,则应更改查询以返回COUNT而不是返回所有行。
SELECT TOP 1 Column1 FROM Table1 WHERE Tags = 'Programming'
您应该检查阅读器中的返回集以查看是否有任何行。如果有,则表示标签存在。