Проблемы с подключением к локальной базе данных MySQL с использованием C # и .NET 2.0 - PullRequest
0 голосов
/ 27 марта 2012

Новые вопросы поступающие.

Я использую MySQL локально, и мне очень трудно подключиться к нему с помощью C #.

Вот код, который я использую, большая часть того, что я пробовал, закомментирована:

using System;
using System.Collections.Generic;
//using System.Data.Common.DbConnection;
using System.Threading;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Threading;
namespace mvpde
{
    class Program
    {
        class DataReader_SQL
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main(string[] args)
            {
                //
                // TODO: Add code to start application here
                //
                try
                {

                    OleDbConnection con = new OleDbConnection(@"Provider=sqloledb;Data Source=127.0.0.1:3306;database=database_name;User id=id;Password=password;");
                    con.Open();

                    //Thread.Sleep(9999);

                    //SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

                    //builder.DataSource = "localhost";
                    //builder.UserID = "hello";
                    //builder.Password = "password";
                    //builder.InitialCatalog = "db_123";

                    //SqlConnection thisConnection = new SqlConnection(builder.ToString());
                    //thisConnection.Open();
                    //SqlCommand thisCommand = thisConnection.CreateCommand();
                    //thisCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers";
                    //SqlDataReader thisReader = thisCommand.ExecuteReader();
                    //while (thisReader.Read())
                    //{
                    //    Console.WriteLine("\t{0}\t{1}", thisReader["CustomerID"], thisReader["CompanyName"]);
                    //}
                    //thisReader.Close();
                    //thisConnection.Close();
                }
                catch (SqlException e)
                {
                    Console.WriteLine(e.Message);
                    Thread.Sleep(9999999);
                }

            }
        }
    }
}

Я скопировал его почти дословно и попытался заставить его работать с этого сайта .

Я установил MySQL на Windows 7 - я создал пользователя и базу данных, к которой я пытаюсь получить доступ, и я могу делать все это очень хорошо, используя собственное программное обеспечение MySQL MySQL Workbench 5.2 CE. Кажется, я понятия не имею, что я делаю, используя C # для подключения к нему.

Все, что мне нужно, это подключиться к нему и отправить ему простой запрос, например «USE DATABASE somedb», а затем «SELECT TABLE sometable».

Ошибки, которые я получаю: Сначала (когда я использовал WAMP, перед установкой пакета MySQL с веб-сайта mysql) я смог подключиться один раз и увидел ошибку входа в систему; после этого, как будто соединение не было закрыто должным образом, и я не смог бы зайти так далеко) Теперь, когда я пытаюсь подключиться к экземпляру MySQL, который создается собственным программным обеспечением MySQL (или с помощью mysqld.exe), все, что я когда-либо получаю, это проблемы тайм-аута \ сервер не найден \ недоступен.

Вопросы:

  • Я использую неправильный класс?

  • Что за сделка с "Provider ="? где находится список всех доступных переменных для этой части строки? Что это значит? Почему имена так загадочны?

Я предполагал, что подключение к локально работающему серверу MySQL должно быть быстрым, но я понятия не имею, что я делаю.

Спасибо.

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Вы не можете использовать объект SQL-соединения.Вам необходим объект MySQL Connection, который доступен в этой библиотеке. http://www.connectionstrings.com/mysql

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

using MySql.Data.MySqlClient;

MySqlConnection myConnection = new MySqlConnection;();
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
//execute queries, etc
myConnection.Close();

Затем используйте объект подключения для инициализации строки подключения и подключения к MySQL

1 голос
/ 27 марта 2012

Вы должны использовать MySql / Connector для DotNet.
Загрузить его по адресу по этому адресу , а затем соответствующим образом изменить строку подключения.
Например "Server = 127.0.0.1; Database = database_name;Uid = id; Pwd = пароль; Port = 3306 "
Для других опций, специфичных для MySQL, смотрите www.connectionstrings.com

1 голос
/ 27 марта 2012

Вы смотрели на http://www.connectionstrings.com/mysql?

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