using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using MySql; using MySql.Data; using MySql.Data.MySqlClient; using MySql.Data.Types; namespace MySqlGeoType { class MySqlGear { private const string conString = "Server = localhost; User Id = root; Password = ****; Database = osm;"; private MySqlConnection connection { get; set; } public MySqlGear() { try { this.Open(); } catch (Exception exc) { Console.WriteLine(exc); } } internal MySqlConnection Open() { connection = new MySqlConnection(conString); connection.Open(); if (connection.State == ConnectionState.Open) return connection; else return null; } internal MySqlConnection Open(string inputConString) { if (inputConString != String.Empty) connection = new MySqlConnection(inputConString); else connection = new MySqlConnection(conString); connection.Open(); if (connection.State == ConnectionState.Open) return connection; else return null; } internal MySqlDataReader SendQuery() { if (connection.State == ConnectionState.Open) { MySqlCommand cmd = new MySqlCommand("SELECT AsWKT(object) as 'object' FROM geo.data", connection); var reader = cmd.ExecuteReader(); return reader; } else return null; } } class Program { static void Main() { try { MySqlGear gear = new MySqlGear(); var reader = gear.SendQuery(); if (reader.HasRows) { while (reader.Read()) { //var polygon = (byte[])reader["object"]; //var obj = new MySqlGeometry(MySqlDbType.Blob, polygon); var polygon = reader["object"].ToString(); var obj = MySqlGeometry.Parse(polygon); } } } catch (Exception exc) { Console.WriteLine(exc); } Console.ReadLine(); } } }