Платформа объекта + развертывание SQLite

В 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 .

Так что вместо этого вы можете сказать

  SELECT
    EmpId,
    *
    ContactNumber
    FROM Employee
        ORDER BY 
            1
6
задан Donal Fellows 15 August 2010 в 14:40
поделиться

3 ответа

Вы попытались добавить необходимый DLL к каталогу bin своего приложения? Вы могли бы хотеть посмотреть на статью Phil Haack о Мусорном ведре, Развертывающем ASP.NET MVC для идей о том, как сделать это автоматически.

0
ответ дан 8 December 2019 в 18:42
поделиться

Вы вряд ли будете это читать, но в вашем 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 . Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант.

Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант.

Это может быть менее гибким, поскольку вы больше не можете обмениваться поставщиками данных через файл конфигурации, но для многих библиотек этого достаточно. К сожалению, если вы не контролируете код библиотеки, это не вариант.

13
ответ дан 8 December 2019 в 18:42
поделиться

SQLite требуется разрешение полного доверия для развертывания приложения ASP.NET. Многие провайдеры виртуального хостинга этого не допускают. Возможно, ты не захочешь это проверять.

0
ответ дан 8 December 2019 в 18:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: