我有一个从我的数据库填充的数据表.我有一个添加和更新数据的功能,但现在我想检查数据是否存在.但我必须检查两件事
如果数据库中存在数据,请检查它是启用还是禁用,如果启用,则应返回message =“数据存在于表中”,否则“数据已禁用”.
bool nameExists;
connection statement
{
command.Connection = connection;
command.CommandText =
@"SELECT TOP 1 0 " +
@"FROM [dbo].[products] p WITH (NOLOCK) " +
@"WHERE [p].[name] = @name";
command.Parameters.AddWithValue("name", name);
command.CommandTimeout = 100;
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
nameExists = reader.HasRows;
}
connection.Close();
}
如何增强查询以检查上述条件?
注意如果您认为这篇文章不是一篇好文章,请不要降级此帖子而是发表评论.如果存在于我的帖子中,也请原谅我的语法错误.
最佳答案 如果有一个名为Enabled的列是int数据类型,0表示禁用,1表示已启用,那么这可能会执行您想要的操作:
declare @Enabled int;
set @Enabled = (
select top 1
p.Enabled
from dbo.products p with (nolock)
where p.name = @name
);
select
msg = convert(varchar(32), case
when @Enabled is null
then 'Data does not exist'
when @Enabled = 0
then 'Data is disabled'
when @Enabled = 1
then 'Data exist in the table'
end);