c# – 检查条件是否存在重复

我有一个从我的数据库填充的数据表.我有一个添加和更新数据的功能,但现在我想检查数据是否存在.但我必须检查两件事

如果数据库中存在数据,请检查它是启用还是禁用,如果启用,则应返回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);
点赞