Я занимаюсь разработкой приложения, в котором мне нужно хранить данные о местоположении в таблице MySQL.В дополнение к точечным местоположениям мне также нужны регионы (многоугольник).
В настоящее время я пишу координаты многоугольника следующим образом:
oMySQLConnecion = new MySqlConnection(DatabaseConnectionString);
if (oMySQLConnecion.State == System.Data.ConnectionState.Closed || oMySQLConnecion.State == System.Data.ConnectionState.Broken)
{
oMySQLConnecion.Open();
}
if (oMySQLConnecion.State == System.Data.ConnectionState.Open)
{
string Query = @"INSERT INTO region (REGION_POLYGON) VALUES (PolygonFromText(@Parameter1))";
MySqlCommand oCommand = new MySqlCommand(Query, oMySQLConnecion);
oCommand.Parameters.AddWithValue("@Parameter1", PolygonString);
int sqlSuccess = oCommand.ExecuteNonQuery();
oMySQLConnecion.Close();
oDBStatus.Type = DBDataStatusType.SUCCESS;
oDBStatus.Message = DBMessageType.SUCCESSFULLY_DATA_UPDATED;
return oDBStatus;
}
После выполнения я вижу BLOB-объект в MySQLтаблица.
Теперь я хочу прочитать данные обратно для моего тестирования, и они не работают так, как я пытался описать ниже:
if (oMySQLConnecion.State == System.Data.ConnectionState.Open)
{
string Query = @"SELECT REGION_ID,REGION_NICK_NAME,GeomFromText(REGION_POLYGON) AS POLYGON FROM region WHERE REGION_USER_ID = @Parameter1";
MySqlCommand oCommand = new MySqlCommand(Query, oMySQLConnecion);
oCommand.Parameters.AddWithValue("@Parameter1", UserID);
using (var reader = oCommand.ExecuteReader())
{
while (reader.Read())
{
R_PolygonCordinates oRec = new R_PolygonCordinates();
oRec.RegionNumber = Convert.ToInt32(reader["REGION_ID"]);
oRec.RegionNickName = reader["REGION_NICK_NAME"].ToString();
oRec.PolygonCodinates = reader["POLYGON"].ToString();
polygons.Add(oRec);
}
}
int sqlSuccess = oCommand.ExecuteNonQuery();
oMySQLConnecion.Close();
return polygons;
}
Возвращает пустую строку.
- Я не уверен, действительно ли я записываю данные, поскольку не могу прочитать BLOB-объекты.
- Неправильно ли мой синтаксис чтения?
** Примечание: ** Я использую Visual Studio 2017. Последняя версия MySQL с классами Spacial.
Любая помощь высоко ценится.
Спасибо