ASP.NET MVC 2 - пользовательское подключение к базе данных - PullRequest
1 голос
/ 16 июня 2010

Я пытаюсь перенести свое базовое программное обеспечение СУБД с классического ASP на ASP.net - однако пользователю необходимо будет ввести данные о подключении для подключения к своему конкретному серверу СУБД.

Возможно ли это вообще с ASP.NET MVC (очень похоже на соединения без DSN в ASP).

Ура, Джоэл

1 Ответ

1 голос
/ 17 июня 2010

Вопрос на самом деле должен звучать так: «Возможно ли это с .NET», ASP.NET MVC не является технологией баз данных, а соединения без DSN также не являются технологией ASP. В .NET это инфраструктура ADO.NET, которая позволяет вам получать доступ к ресурсам базы данных, и ее можно использовать из любого кода .NET, будь то настольный компьютер, веб или мобильный телефон.

Есть несколько специализированных библиотек для определенных платформ, .NET включает встроенную поддержку Sql Server, вы можете получить MySql Connector для .NET и т. Д.

Все эти провайдеры построены на модели провайдера ADO.NET, вы можете либо использовать их явно, либо использовать метод, независимый от провайдера. Вот два примера, первым из которых является Sql Server:

string connectionString = "Server=....";
using (SqlConnection connection = new SqlConnection(connectionString))
{
  using (SqlCommand command = new SqlCommand("SELECT [Name] FROM [People]")) 
  {
    connection.Open();

    using (SqlDataReader reader = command.ExecuteReader()) 
    {
      // Do something here.
    }
  }
}

В приведенном выше примере я использую определенные типы Sql Server ADO.NET для создания соединения с базой данных и выполнения произвольного запроса к ней.

Если вы собираетесь поддерживать несколько платформ баз данных, вероятно, лучше спроектировать свой код так, чтобы он мог использовать классы фабрики ADO.NET, которые являются специализированными фабриками, предназначенными для создания платформо-специфических типов. В приведенном ниже примере я использовал классы Factory для доступа к базе данных MySql Server:

string connectionString = "Server=....";
DbProviderFactory factory = DbProviderFactories.GetFactory("MySql.Data");
using (DbConnection connection = factory.CreateConnection()) 
{
  connection.ConnectionString = connectionString;

  using (DbCommand command = factory.CreateCommand())
  {
    command.CommandText = "SELECT `Name` FROM Page";

    connection.Open();

    using (DbDataReader reader = command.ExecuteReader())
    {
      // Do something here.
    }
  }
}

Не идеальный пример, но достаточный для начала, но важно помнить, что соединения без DSN не привязаны к ASP или ASP.NET.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...