C#でOdbcを使用してMysqlデータベースに接続

3395 ワード

プロジェクトに必要なので、以下のようにまとめます.
接続を行う前に、Odbcデータソースの設定を行う必要があります.具体的には、ネット上に多くあり、検索できます.
作成前にインストールする必要があります
1、ODBC.NET(全称ODBC.NET Data Provider)は無料です.NET Frameworkの追加コンポーネントは、マイクロソフト社のウェブサイトにダウンロードする必要があります.ダウンロード先は:http://download.microsoft.com/download/dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msiシステムにMDAC 2.7以降がインストールされている必要があります.
2、MySQLのODBCドライバをインストールする必要があります.ダウンロード先は以下の通りです.http://www.mysql.com/downloads/connector/odbc/
その後、ODBCデータソースを作成し、順番に開くことができます:私のパソコン-コントロールパネル-管理ツール-データソース(ODBC)-「システムDNS」をクリックして右側の追加を選択し、ポップアップボックスで後ろに引いて、「Mysql ODBC 5.3 Unicode Driver」を選択します.この名前はあなたの駆動バージョンによって異なります.クリックして私の設定を完了しますC#中使用Odbc连接Mysql数据库_第1张图片
その後はVS 2010での操作:C#中使用Odbc连接Mysql数据库_第2张图片
接続後の状態:C#中使用Odbc连接Mysql数据库_第3张图片


次に、プログラムの構成を示します.
//     
        bool mysqlState = false;
        public string MyConString;
        OdbcConnection MyLPRS;
       bool connectMysql()
        {
            string MyConString = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" +

                                      "SERVER=localhost;" +

                                      "DATABASE=licenseplate;" +

                                      "UID=root;" +

                                      "PASSWORD=mysql890806;" +

                                      "OPTION=3";
            MyLPRS = new OdbcConnection(MyConString);
            MyLPRS.Open();
            mysqlState = true;
            return mysqlState;   
        }
 //          
                    if (mysqlState == false)
                    {
                        connectMysql();
                        mysqlState = true;
                    }
                    DateTime time = System.DateTime.Now;
                    string query = "insert into plate (result, time) values ('"+recognizeResult.Text+"','" + time + "')";
                    OdbcCommand cmd = new OdbcCommand(query, MyLPRS);
                    try
                    {
                        cmd.ExecuteNonQuery();
                    }


                    catch (Exception ex)
                    {
                        //Console.WriteLine("record duplicate.");
                    }
                    finally
                    {
                        cmd.Dispose();
                    }