Вам просто нужно выбрать count(air.ac_id)
.
Также замените clnt.usr_sid=?
на clnt.clnt_id=?
, если вы собираетесь ожидать такой результат, как clnt_id[1]=3
.
select count(air.ac_id) as nAC
from clients_db clnt
left join aircon_client_db air on air.clnt_sid=clnt.clnt_sid
where clnt.clnt_id=?
group by clnt.clnt_sid
order by clnt.clnt_name asc
Вы пропустили clnt_name
в качестве колонки в вашем вопросе?
подобный вопрос уже задали.
, но...
я говорил бы не больше . Это было первоначально предназначено для сокрытия сгенерированный код от WinForms в ранних версиях.NET. С частичными классами потребность, кажется, уходит. По моему скромному мнению, это злоупотребило путь теперь как организационную конструкцию и имеет значение компилятора что. Это - все для IDE.
Продолжение, что было ранее сказано Russell Myers, если Вы изучаете, как осуществить рефакторинг Ваш код правильно (навык опытные разработчики должны учиться), действительно нет слишком большого количества потребности в регионах.
Несколько недель назад я думал, что регионы были большими, потому что они позволили мне скрывать свой толстый код, но после осуществления моих навыков кода я смог сделать его стройнее, и теперь я вписался в размер 7 классов (кто-то должен ТАК сделать это измерением для рефакторинга в будущем! :P)
Наши Бизнес-объекты у всех есть регионы - и мы любим их.
Мы имеем;
у Нас есть немногие другие в зависимости от типа Бизнес-объекта, мы имеем дело с (Подписчик и т.д.)
Для многих регионов классов просто мешают - но для наших стандартных бизнес-объектов они сохраняют нас тонна времени. Эти Бизнес-объекты являются кодом gen'd, таким образом, они очень последовательны. Может добраться туда, где я хочу быть путем быстрее, чем помеха, если они не, и непротиворечивость помогает найти материал друг друга.
Я использую их все время. Снова, как что-либо еще, они могут использоваться и для злого и для хорошего, и могут, конечно, быть признаком плохого дизайна, но они могут использоваться, чтобы помочь организовать код очень хорошо.
#region Properties
#region Update Section
#region Accessors
, Конечно, необходимо избежать примера Jeff
#Sweep under carpet
, Что я нахожу нечетными о них, как Jeff, на которого указывают, то, что они - команда препроцессора компилятора в ui целях. Я уверен, что команда VS, возможно, сделала что-то столь же полезное в другом отношении.
http://www.rauchy.net/regionerate/ - Автоматически regionised Ваш код ;)
я - поклонник регионов для группировки разделов больших классов, говорю все свойства вместе, все постоянства, и т.д. Я - кто-то, кто постоянно сворачивает код, который я не должен видеть в то время, таким образом, я люблю регионы за это.
Также я нахожу регионы действительно полезными при реализации интерфейсов, особенно несколько интерфейсов. Я могу сгруппироваться, каждый соединяет интерфейсом с методами, свойствами, событиями, и т.д. таким образом, легче сразу видеть, какой метод принадлежит какой интерфейс.
Я часто использую их вместо комментариев для упорядочивания групп функциональности в теле класса, например, "Открытого интерфейса конфигурации", "Открытый интерфейс состояния", "внутренняя обработка" и "внутреннее управление рабочим потоком".
Используя сочетания клавиш для "сворачивания к определениям" и "разворачивают текущий блок", я могу легко переместиться по еще большим классам.
, К сожалению, регионы повреждаются для C++, и MS не думает, что должен быть зафиксирован.
Часто времена, и partials и #regions используются в качестве опоры для плохого дизайна (например, класс является слишком большим или пытается сделать слишком много вещей).
лучший использование я имел для #regions, до сих пор группировка функциональности, которая замечена во многих различных классах. Например, оцените объекты, которые имеют методы считывания, методы set, конструкторов и поля поддержки. Я мог бы очень хорошо сгруппировать те идеи в регионы. Это - дело вкуса, однако, относительно того, делает ли это инструмент для очистки кода или тяжелее читать.
Мой рабочий день запускает с вводных файлов в редакторе и нажатии "Expand All" для сокрытия всех регионов. После этого я могу начать работать.
Действительно нет преимущества. Они - запах кода. После использования их некоторое время, я устал от них. Если необходимо выломать вещи функциональностью, используйте частичный класс.
Я люблю регионы, потому что это помогает мне сфокусировать на, что я продолжаю работать. Я использую их, даже если класс просто имеет метод.
я использую фрагменты кода с регионами, уже предварительно заполненными, который меньше вводит. Я чувствую, что класс более организован и делает, какой Код Полные переговоры о делают его более хорошим, чтобы другие люди читали. Компилятор просто игнорирует их, они должны теперь сделать код более читаемым.
Хорошие ответы, я соглашаюсь с ними, что говорят, что это иногда отражает плохо кодирование и дизайн, но #region на самом деле полезен при создании документации (стиль MSDN) с SandCastle. Позволяет говорят, что у Вас есть общедоступный API и существует некоторый базовый класс, для которого Вы хотите дать пример использования. Затем Вы правильно зарегистрировали бы свои открытые методы и добавили бы регион в качестве примера, где Вы могли скопировать и вставить некоторый код. Проблема с этим состоит в том, что, когда/если Ваш базовый класс изменяется, Вы, как предполагается, изменяете пример в конечном счете. Лучшее решение состоит в том, чтобы включать проект примера кода в Ваше решение и создать все это вместе, поэтому каждый раз Вы создаете свое решение, если пример кода не будет актуален, то это не скомпилирует. Таким образом, что делает, которые имеют отношение к регионам, Вы будете спрашивать Ваш сам к настоящему времени. Хорошо посмотрите на этот образец:
/// <example>
/// The following code sample is an implementation of LoadPublishedVersion() for XmlPageProvider.
/// <code source="../CodeSamples/EPiServerNET/PageProvider/XmlPageProvider.cs" region="LoadPublishedVersion" lang="cs"/>
/// </example>
Уведомление там является ссылкой на файл примера исходного кода и регион для метода, который Вы хотите выставить как образец в Вашей документации. Посмотрите здесь результат . Тот метод должен быть в надлежащем регионе и будет автоматически включен в Вашу документацию. Вот почему я еще не выбросил бы #region.
Как любая функция языка, регионы имеют потенциал, который будет неправильно использоваться и злоупотребляться, но они также обладают своими преимуществами.
Они являются великими для создания "складных" групп вокруг:
, можно также использовать его для свойств группы, общественности/закрытых методов, событий, переменных всего класса, и т.д.
я использую регионы в своем коде, чтобы помочь создать последовательную структуру в моем коде, таким образом, я всегда знаю, где вещи сразу. Да, это делает вещи немного тяжелее во время рефакторинга или добавления новых функций (особенно при автоматической генерации Visual Studio), но я чувствую, что это - маленькая цена для оплаты для хранения вещей последовательными и структурированными.
Я ненавижу злоупотребление ими. Единственные думают, что я нахожу их полезными для, скрывает вещи, которые Вы, вероятно, никогда не хотите видеть снова. С другой стороны те вещи должны, вероятно, быть выключены в библиотеке где-нибудь.
Я нахожу, что они запутывают код во всех кроме самого простого из использования. Единственное использование, которое мы защищаем в наших проектах, является теми использование IDE (интерфейсные реализации и код разработчика).
правильные инструменты должны использоваться для правильной цели. Код должен быть написан для показа намерения и функции вместо того, чтобы произвольно группировать вещи. Организация вещей в группировку модификатора доступа или некоторую другую группировку просто, кажется, нелогична. Я нахожу, что код должен быть организован способом, который имеет смысл для конкретного класса; в конце концов, существуют другие инструменты для просмотра участников класса модификатором доступа. Это также имеет место почти для любого использования регионов; существует лучший путь.
, Например, группируя свойства, события, константы или иначе вместе действительно не имеет смысла ни один, поскольку код обычно более удобен в сопровождении, если вещи группируются функцией (как в, свойство, которое использует константу, должно быть около той константы, не около других несвязанных свойств просто, потому что это - свойство).
Существуют времена, когда Ваши методы должны быть длинными, особенно с веб-разработкой. В тех случаях (такой как тогда, когда у меня есть gridview с большим, сложным объектом, связанным с ним) я нашел полезным использовать регионы:
#region Declaring variables for fields and object properties
#region Getting the fields in scope
#region Getting the properties of the object
#region Setting Fields
Это дискретные разделы метода, который МОГ вспыхнуться, но это будет трудно (я должен был бы использовать переменные с большим объемом, чем я люблю или передаю МНОГО переменных как), и это - основная инфраструктура.
В этом случае, регионы совершенно приемлемы. В других они бесполезны.
я буду также использовать регионы для групповых методов в логические группы. Я отклоняю частичные классы с этой целью, поскольку я склонен иметь много страниц, открытых, когда я отлаживаю, и чем меньше частичных классов, там находятся в объекте (или страница или диалоговое окно), тем больше из них, которых я могу иметь в своем списке вкладки (который я ограничиваю одной строкой, таким образом, я вижу больше кода).
регионы являются только проблемой при использовании в качестве опоры, или когда они покрывают плохой код (например, если Вы - вложенные регионы друг в друге в том же объеме, это - плохой знак).
Они могут злоупотребиться, но мне нравятся они за разделение закрытых методов, открытых методов, свойств и переменных экземпляра.