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();
}
}
}