Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > c# подключение к MySQL


Автор: bosscs 9.5.2013, 14:56
Я подключался к MySQL с помощью MySQL Connector'a, но мне препод сказал, для универсальности использовать какой-то драйвер. Может ли используя OLEDB подключаться и работать с MySQL?

Автор: Urfin 10.5.2013, 09:31
MySQL Connector и есть ODBC-драйвер. И этот подход самый правильный. Есть еще механизм ADODB через COM-соединение.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id518b8f126ccc197d09000003#findElement_E7045_518c94466ccc19ab5d000d56_0

Автор: bosscs 12.5.2013, 16:53
Вот как я пробовал:
Код

using System.Data.OleDb;
...

using (OleDbConnection conn = new OleDbConnection())
{
    conn.ConnectionString = "Provider=sqloledb;Data Source=localhost;Initial Catalog=autostore;Integrated Security=SSPI;";
    using (OleDbCommand cmd = new OleDbCommand())
    {
        conn.Open();
        cmd.Connection = conn;
        cmd.CommandText = "Select * from yourTable";
        using (OleDbDataReader dr = cmd.ExecuteReader())
        {
            while (dr.Read())
            {
                Console.WriteLine(dr["columnName"]);
            }
        }
    }
}


Ругается на строку
Код

conn.Open();



Пишет ошибку:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.

У меня запущен Denwer, phpMyAdmin нормально работает.

Автор: Urfin 13.5.2013, 12:58
в строке подключения не вижу имени БД, имени пользователя и пароль.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id518b8f126ccc197d09000003#findElement_E7045_5190b95d6ccc19f21400008e_0

Автор: Urfin 13.5.2013, 13:24
http://www.connectionstrings.com/sql-server-2008

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id518b8f126ccc197d09000003#findElement_E7045_5190bf446ccc197713000f62_0

Автор: mrgloom 5.7.2013, 14:35
так как должна выглядеть строка connectionstring для того чтобы заработало?

Добавлено @ 14:49
Код

            String str;
            SqlConnection myConn = new SqlConnection("Server=localhost;
            Integrated security=SSPI;database=master");

            str = "CREATE DATABASE MyDatabase ON PRIMARY " +
                "(NAME = MyDatabase_Data, " +
                "FILENAME = 'C:\\MyDatabaseData.mdf', " +
                "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
                "LOG ON (NAME = MyDatabase_Log, " +
                "FILENAME = 'C:\\MyDatabaseLog.ldf', " +
                "SIZE = 1MB, " +
                "MAXSIZE = 5MB, " +
                "FILEGROWTH = 10%)";

            SqlCommand myCommand = new SqlCommand(str, myConn);
            try
            {
                myConn.Open();
                myCommand.ExecuteNonQuery();
                MessageBox.Show("DataBase is Created Successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                if (myConn.State == ConnectionState.Open)
                {
                    myConn.Close();
                }
            }


пример из мсдн не работает, надо заранее создавать и настраивать SQL базу? 

Автор: jonie 9.7.2013, 21:38
У вас то MySQL то MSSQL, вы уже определитесь к чему вы там подключаться решили. А препод вам наверняка намекал на использование не драйвера (MySQL Connector вполне себе), а на использование ORM-а...

Для OLEDB кстати есть простой способ:
создайте пустой текстовый файл с именем 1.udl, тыкните по нему дважды и в диалоге настройте и провайдера, и все его параметры. Сохраните и посмотрите его в блокноте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)