使用C#和.NET 2.0连接到本地MySQL数据库时出现问题

时间:2012-03-27 10:24:25

标签: c# .net mysql database visual-studio-2010

Newb提出问题。

我正在本地运行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);
                }

            }
        }
    }
}

我几乎逐字复制了它,并试图让它从this site开始工作。

我在Windows 7上安装了MySQL - 我创建了用户和我正在尝试访问的数据库,我可以使用MySQL自己的MySQL Workbench 5.2 CE软件完成所有这些工作。我似乎不知道我正在使用C#连接到它。

我想要的只是连接到它并发送一个简单的查询,如“USE DATABASE somedb”,然后“SELECT TABLE sometable”。

我得到的错误: 起初(当我使用WAMP时,在从mysql网站安装MySQL包之前)我可以连接一次并看到登录错误;在那之后,好像连接没有正确关闭,我甚至无法达到那么远) 既然我正在尝试连接到由MySQL自己的软件(或运行mysqld.exe)创建的MySQL实例,我所得到的只是超时问题\服务器未找到\无法访问。

问题:

  • 我使用错误的课程吗?

  • 与“Provider =”有什么关系?字符串该部分的所有可用变量的列表在哪里?这是什么意思?为什么涉及的名字如此神秘?

我想连接到本地运行的MySQL服务器应该是轻而易举的,但我不知道我在做什么。

谢谢。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您无法使用SQL Connection对象。您需要一个可在此库中使用的MySQL Connection对象.http://www.connectionstrings.com/mysql

下载MySQL连接库并使用网站上提供的连接字符串之一。

using MySql.Data.MySqlClient;

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

然后使用连接对象初始化连接字符串并连接到MySQL

答案 2 :(得分:1)

你应该使用MySql / Connector for DotNet 在this address下载,然后相应地更改您的连接字符串 例如“Server = 127.0.0.1; Database = database_name; Uid = id; Pwd = password; Port = 3306”
有关MySQL的其他选项,请查看www.connectionstrings.com