3

MySQL データベースからテーブルの主キーを取得しようとしています。MySQL ODBC 3.51 ドライバーを使用すると、以下のコードは正常に動作します。MySQL ODBC 5.2 ANSI ドライバーを使用するようにコードを変更すると、機能しません。また、MySQL ODBC 5.1 Driver も試しました。最新バージョンの MySQL ODBC ドライバーを使用してテーブルの主キーを取得できない理由を知っている人はいますか?

このコードは機能し、DataTable で PrimaryKey を返します。

        using (OdbcConnection connection = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=IP_Address;Database=DB_Name;User=username;Password=password;Option=3;"))
        {
            connection.Open();
            DataTable dt = new DataTable();
            using(OdbcCommand command = connection.CreateCommand())
            {
                command.CommandText = "SET SESSION sql_mode = 'ANSI';";
                command.ExecuteNonQuery();

                command.CommandText = "SELECT * FROM \"items\"";
                using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
                {
                    adapter.FillSchema(dt,SchemaType.Source);
                }
            }

            connection.Close();
        }

このコードは機能しません - DataTable に PrimaryKey が返されません:

        using (OdbcConnection connection = new OdbcConnection("Driver={MySQL ODBC 5.2 ANSI Driver};Server=IP_Address;Database=DB_Name;User=username;Password=password;Option=3;"))
        {
            connection.Open();
            DataTable dt = new DataTable();
            using(OdbcCommand command = connection.CreateCommand())
            {
                command.CommandText = "SET SESSION sql_mode = 'ANSI';";
                command.ExecuteNonQuery();

                command.CommandText = "SELECT * FROM \"items\"";
                using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
                {
                    adapter.FillSchema(dt,SchemaType.Source);
                }
            }

            connection.Close();
        }
4

0 に答える 0