MySQL DataCOnnection и ADO.NET - PullRequest
       25

MySQL DataCOnnection и ADO.NET

2 голосов
/ 09 марта 2010

Я хочу использовать mysqlconnection, command and datareader или sqlconnection, command и datareader в зависимости от условия. Я хочу использовать одинаковые переменные для обоих типов соединений

Ex:

Currently i have
dim _c as New mySqlConnection()
dim _cmd as New mysqlCommand()
dim _reader as New mysqlreader()

_reader = _cmd.executereader()
'loop through _reader
 -----------------

Как я могу изменить первые три, чтобы использовать sql / mysql в зависимости от выбора. Это возможно?

Ответы [ 2 ]

4 голосов
/ 09 марта 2010

Да, это возможно. ADO.NET имеет API провайдера для этого. Вы должны сделать что-то вроде этого:

string providerName;

if (true/*add your logic here*/)
   providerName = "System.Data.SqlClient";
else
   providerName = "MySql.Data.MySqlClient"

DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);

DbConnection connection = factory.CreateConnection();
DbCommand command = factory.CreateCommand();

// ... and so on
0 голосов
/ 09 марта 2010

Напишите метод, который возвращает устройство чтения данных. Поместите выбранный регистр в метод, независимо от условий, которые вы используете для построения запроса, программа чтения данных будет возвращена.

Обязательно закройте устройство чтения данных, когда закончите.

...