В SQL ORDER BY
- это ключевое слово, используемое для упорядочения набора результатов на основе значений конкретного столбца или столбцов в порядке возрастания или убывания.
ORDER BY
дается как последнее утверждение в SELECT
.
Синтаксис:
SELECT
<List of Columns>
FROM <Table Name>
<Filter Conditions > -- Optional
<Group By and Having> - Optional
ORDER BY
<Column 1> <ASC or DESC>,
<Column 2> <ASC or DESC>,
.......
<Column N> <ASC or DESC>,
Вы можете либо дать имена столбцов, либо порядковую позицию столбца в списке выбора.
Например:
SELECT
EmpId,
FirstName,
LastName,
Age,
ContactNumber
FROM Employee
ORDER BY
FirstName,
Age
Также можно записать как
SELECT
EmpId,
FirstName,
LastName,
Age,
ContactNumber
FROM Employee
ORDER BY
2,4
во втором, я задаю Порядковый номер столбцов FirstName и Age вместо указания Название столбца.
Этот подход более полезен, когда в вашем наборе результатов есть 2 столбца с одинаковым именем.
Пример:
SELECT
EmpId,
*
ContactNumber
FROM Employee
ORDER BY
EmpId
Выше приведено следующее сообщение об ошибке
Msg 209, Уровень 16, Состояние 1, Строка 5 Неоднозначное имя столбца 'EmpId .
blockquote>Так что вместо этого вы можете сказать
SELECT EmpId, * ContactNumber FROM Employee ORDER BY 1
Вы попытались добавить необходимый DLL к каталогу bin своего приложения? Вы могли бы хотеть посмотреть на статью Phil Haack о Мусорном ведре, Развертывающем ASP.NET MVC для идей о том, как сделать это автоматически.
Вы вряд ли будете это читать, но в вашем app.config (или, для вас, web.config) отсутствует следующее:
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
</configuration>
В частности, если вы вы используете sqlite в библиотеке, которая связана с вашим веб-сайтом, вы должны добавить это в файл конфигурации веб-сайта, а не в библиотеку! Это связано с тем, как вы загружаете поставщика: по сути, вы определяете во время выполнения, какую DLL загружать, используя строку "System.Data.SQLite", а поиск подходящего поставщика выполняется с использованием настроек сборки записи.
Изменить: Между прочим, когда вы пишете библиотеку, зависящую от sqlite, вы можете избежать этой сложности. Вам не нужно использовать DbProviderFactories
для поиска sqlite во время выполнения; вы также можете использовать зависимость времени компиляции, которой будет проще управлять. Затем вы можете игнорировать приведенный выше раздел app.config и вместо этого заменить все экземпляры:
DbProviderFactories.GetFactory("System.Data.SQLite").CreateConnection()
на
System.Data.SQLite.SQLiteFactory.Instance.CreateConnection()
. Если вы это сделаете, вы используете простой вызов библиотеки для создания соединения, и во время выполнения нет выбора поставщика db . Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант.
Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант. Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант.SQLite требуется разрешение полного доверия для развертывания приложения ASP.NET. Многие провайдеры виртуального хостинга этого не допускают. Возможно, ты не захочешь это проверять.