Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Conn. String для MySQL не могу указать provider, Подключаюсь k MySQL через ADO.NET 
V
    Опции темы
Torgovec
Дата 28.5.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 8.11.2005

Репутация: нет
Всего: нет



Прочитал инфу, о том, что настройки соединения с БД лучше хранить в файле app.config, сделал как написано в MSDN открыл свойства проекта, перешел на вкладку Settings, там создал строку: Name-> ConnectionString, Type-> (Connection String), Scope-> Application, Value->"server=192.168.99.1;user id=puh;database=net;password=puh;persist security info=True"

В результате этих действий сформировался файл app.config
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="DataBase2.Properties.Settings.ConnectionString" 
            connectionString="server=192.168.99.1;user id=puh;database=net;password=puh;persist security info=True"
            providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
</configuration>

Далее я написал такой код (Program.cs):
Код

static class Program
{
        static void Main()
        {
            Console.WriteLine("Подключаемся...\n");
            SqlConnection cn = new SqlConnection(DataBase2.Properties.Settings.Default.ConnectionString.ToString());


            cn.Open();
            string strSQL = "SELECT * FROM net.tab1";
            SqlCommand myCommand = new SqlCommand(strSQL, cn);
            SqlDataReader myDataReader;
            myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

            while (myDataReader.Read())
            {
                Console.WriteLine("-> ID - {0}, UserName - {1}, Password - {2}",
                    myDataReader["id"].ToString().Trim(),
                    myDataReader["username"].ToString().Trim(),
                    myDataReader["password"].ToString().Trim());
            }
            myDataReader.Close();
        }
}


Проблема в том, что я не могу подсоединиться к базе, после минуты ожидания я получаю ошибку
Программа останавливается на инструкции cn.Open();
Код

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: An error has occurred while establishing a connection to the server.  
When connecting to SQL Server 2005, this failure may be caused by the fact that under the default 
settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, 
error: 40 - Could not open a connection to SQL Server)


А на серваке при запущенном tcpdump'е вижу, что программа пытается зацепиться к порту MS-SQL(а не MySQL), подозреваю, что это происходит потому что я не указал provider, но где его указывать я так и не нашел.

Это сообщение отредактировал(а) Torgovec - 28.5.2008, 13:16
PM MAIL   Вверх
Ronin08
Дата 28.5.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

Репутация: нет
Всего: 1



Цитата

подозреваю, что это происходит потому что я не указал provider

как я вижу провайдер у вас указан
Код

 providerName="MySql.Data.MySqlClient" 

может эта ссылка поможет тут
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Magnifico
Дата 28.5.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



пытаешься подключится к MySQL
а используешь команды для sql server  из пространства System.Data.SqlClient

MysqlConnection
MySqlCommand
MySqlDataAdapter
да и примеров тут есть куча --- поиск!


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Torgovec
Дата 29.5.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 8.11.2005

Репутация: нет
Всего: нет



Цитата

пытаешься подключится к MySQL
а используешь команды для sql server  из пространства System.Data.SqlClient

Спасибо разобрался вроде,  переписал вот так:
Код

        static void Main()
        {
            IDbConnection cn = new MySqlConnection(DataBase2.Properties.Settings.Default.ConnectionString.ToString());
            cn.Open();
            string strSQL = "SELECT * FROM net.tab1";
            IDbCommand dbcmd = cn.CreateCommand();
            dbcmd.CommandText = strSQL;
            IDataReader myDataReader;
            myDataReader = dbcmd.ExecuteReader(CommandBehavior.CloseConnection);

            while (myDataReader.Read())
            {
                Console.WriteLine("-> ID - {0}, UserName - {1}, Password - {2}",
                    myDataReader["id"].ToString().Trim(),
                    myDataReader["username"].ToString().Trim(),
                    myDataReader["password"].ToString().Trim());
            }
            myDataReader.Close();
        }

Поначалу думал, что классы Sql* являются универсальными, только где то нужно провайдер указывать.
Цитата

да и примеров тут есть куча --- поиск! 

Пытался найти, не нашел...
Сейчас все работает, спасибо за помощь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.