0

ダウンロードしましmysql.dllた。これをソリューションに追加すると、次のようなエラーが発生します

ファイルがアクセス可能で、有効なアセンブリまたは com コンポーネントであることを確認してください...

C# から MySql に接続する方法と、C# で MySql を使用しているときに発生する可能性のある問題を教えてください。すべてのシステムで動作しますか?

4

3 に答える 3

1

http://www.mysql.com/downloads/connector/net/

MySqlコネクタをダウンロードして使用できます

于 2012-11-08T07:05:45.520 に答える
1

mysql.dll ではなく、MySql.Data.dll を参照する必要があります。

データベース接続を開くには、次のようなものを使用できます

        internal static MySqlConnection GetConnection(string dbserver, string username, string password, string databasename)
    {
        try
        {
            MySqlConnection conn = new MySqlConnection("server=" + dbserver + ";User Id=" + username + ";Password=" + password + ";Persist Security Info=True;database=" + databasename);
            conn.Open();
            return conn;
        }
        catch (Exception ex)
        {
            // Code to handle exception
        }
    }

サポートされているプラ​​ットフォームについて、ドキュメントには次のように記載されています。

Connector/NET は、.NET フレームワークをサポートするすべてのプラットフォームで動作します。.NET フレームワークは、主に最近のバージョンの Microsoft Windows でサポートされており、オープン ソースの Mono フレームワークを通じて Linux でサポートされています。

于 2012-11-08T07:19:14.270 に答える
0

まず、MySQL.data.dll を参照に追加する必要があります。

次に、MySQL サーバーに接続し、サーバーから単純なデータを選択するサンプル コードを次に示します。

    private string _server;

    private string _port;

    private string _database;

    private string _uid;

    private string _pwd;

    //Constructor
    public MySQL()
    {
        Initialize();
    }

    //Initialize connection string
    private void Initialize()
    {
        _server = "10.11.12.13";
        _database = "ABCDEF";
        _port = "3306";
        _uid = "root";
        _pwd = "raat";
        var connectionString = "SERVER=" + _server + ";" + "DATABASE=" + 
                                  _database + ";" + "PORT=" + _port + ";" + "UID=" + _uid + ";" + "PASSWORD=" + _pwd + ";";> 
        
        connection = new MySqlConnection(connectionString);
    }

    //Connect to server
    private bool OpenConnection()
    {
        try
        {
            if (connection.State != System.Data.ConnectionState.Open)
                connection.Open();

            return true;
        }
        catch (MySqlException ex)
        {
            //When handling errors, you can your application's response based 
            //on the error number.
            //The two most common error numbers when connecting are as follows:
            //0: Cannot connect to server.
            //1045: Invalid user name and/or password.
            switch (ex.Number)
            {
                case 0:
                    Global._logger.Info("Cannot connect to server.  Contact administrator");
                    break;

                case 1045:
                    Global._logger.Info("Invalid username/password, please try again");
                    break;
            }
            Global._logger.Info(ex.Message + " / " + ex.StackTrace);
            return false;
        }
    }

    //Close connection
    private bool CloseConnection()
    {
        try
        {
            if (connection.State != System.Data.ConnectionState.Closed)
                connection.Close();

            return true;
        }
        catch (MySqlException e)
        {
            Global._logger.Info(e.Message + " / " + e.StackTrace);
            return false;
        }
    }

    //Create query to select data from Server
    public string GetStudentName(string studentId)
    {
        var query = "SELECT * FROM Student WHERE StudentID = '" + studentId;

        if (OpenConnection())
        {
            //Create command
            var cmd = new MySqlCommand(query, connection);

            //Create data reader and excute datareader
            MySqlDataReader dataReader = null;> 

            try
            {
                dataReader = cmd.ExecuteReader();
            }
            catch (MySqlException mySQLEx)
            {
                Global._logger.Error(mySQLEx);
            }

            string studentName = "";

            try
            {
                if (dataReader != null)
                {                         
                    while (dataReader.Read())
                    {                      

                        studentName= Convert.ToInt32(dataReader["Name"].ToString());

                    }
                    
                    dataReader.Close();
                    
                    CloseConnection();    

                    return studentName;                    
                }               

            }
            catch (Exception e)
            {
                Global._logger.Info(e.Message + e.Source);>              
            }
        }          
    }
于 2012-11-08T07:17:32.280 に答える