Статьи

.NET подключение к различным базам данных … запрос

Ваше желание — моя команда 🙂 Был сделан запрос на быстрый пример того, как установить соединение .NET с различными базами данных.

Хотя существует множество различных баз данных, почти все они позволят вам подключиться с помощью одного из следующих методов, поддерживаемых .NET: ODBC и OLE DB. OLE DB часто может обеспечить более высокую производительность, потому что у него меньше работы по доставке запросов в базу данных и из нее, и он предлагает интерфейсы доступа к данным более высокого уровня, что делает его более подходящим для не-SQL и неструктурированных источников данных.

Многие производители баз данных (и сторонние производители) также создают собственные интерфейсы ADO.NET для базы данных, что опять же может повысить производительность.

Итак, сначала посмотрите, предоставляет ли ваша База данных встроенную поддержку ADO.NET, если нет, попробуйте поддержку OLE DB, и если все остальное не поможет, вернитесь к использованию ODBC 🙂

Все поставщики данных ADO.NET соответствуют общему набору интерфейсов, обеспечивающих Connector, DataReader и DataAdapter. Компонентов больше, но давайте пока сосредоточимся на них.

Давайте возьмем MySQL в качестве примера. Есть сторонние поставщики данных, которые вы можете использовать, однако я покажу, как подключиться к базе данных через OLE DB:

Строка подключения к MySQL через OLE DB имеет следующий вид:

string connectionString = "Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=password;";

Просто заполните информацию о вашей базе данных, чтобы создать собственную строку соединения, которую вы можете использовать с классом OleDbConnection для создания соединения с вашей базой данных:

OleDbConnection conn = new OleDbConnection(connectionString);

Теперь мы можем либо выбрать использование DataSet (выполняет запрос SQL к вашей базе данных, извлекает все результаты перед возвратом и отключается от базы данных), либо DataReader (выполняет запрос SQL, и, если результаты доступны, извлекается по вашей команде ).

Я обрисую код для обоих:

Использование DataSet:

OleDbDataAdapter da = new OleDbDataAdapter("select id from foo",conn); DataSet ds = new DataSet(); int i = adapter.Fill(ds); // i will contain the number of results

foreach (DataRow dr в ds.Tables [0] .Rows)
{
Console.WriteLine («id:» + dr [0] .ToString ());
}

Теперь вы можете использовать DataSet для запроса ваших результатов.

Использование DataReader:

OleDbCommand comm = new OleDbCommand("select id from foo",conn); conn.Open(); OleDbDataReader reader; reader = comm.ExecuteReader();

while (myReader.Read ()) {
Console.WriteLine («id:» + reader.GetInt32 (0));
}
// Закрыть, когда закончите чтение.
reader.Close ();
// Закрыть соединение.
conn.Close ();
}

Как видите, только строка подключения выбирает вашу базу данных. Connectionstrings.com — отличный ресурс для поиска строки подключения для вашей конкретной базы данных.

Для ODBC просто замените любые ссылки на «OleDb» в приведенном выше примере на «Odbc». Все они используют одни и те же интерфейсы 🙂 Вам также может понадобиться загрузить поставщик Odbc ADO.NET от Microsoft, в зависимости от версии .NET и VS.NET (вы можете найти это здесь ).

Ну, я надеюсь, что это несколько прояснит ситуацию. Попробуйте, и, как всегда, если у вас есть что добавить, просто добавьте комментарий 🙂