Во-первых, оператор select count (*) всегда будет возвращать хотя бы одну запись, поэтому ваше условие всегда будет возвращать TRUE.Таким образом, вам нужно условие типа
IF (Select count(*) FROM ...) > 0
Далее, если вам нужно обновить запись, используя ваше условие, вы можете использовать оператор IF .. BEGIN .. END.Не обязательно использовать BEGIN .. END. Вы можете использовать UPDATE сразу после условия IF, но в будущем, если вы измените свой код, вы можете избежать логических ошибок.
Итак, ваш код будетбыть таким:
public void UpdateModalitiesId(int? CaseId, int ModalitiesId)
{
string query = "if (select count(*) from ImageModality where ImageModality.Id='"+ ModalitiesId +"') > 0 BEGIN
UPDATE ImageGroup set ImageModalityId='" + ModalitiesId + "' where BaseCaseId='" + CaseId +"; END' ;
SqlHelper.ExecuteNonQuery(strConnectionString, CommandType.Text, query);
}
РЕДАКТИРОВАТЬ: И правильный код
public void UpdateModalitiesId(int? CaseId, int ModalitiesId)
{
string query = "if EXISTS(select * from ImageModality where ImageModality.Id='"+ ModalitiesId +"') 0 BEGIN
UPDATE ImageGroup set ImageModalityId='" + ModalitiesId + "' where BaseCaseId='" + CaseId +"; END' ;
SqlHelper.ExecuteNonQuery(strConnectionString, CommandType.Text, query);
}