Member 12341536 Ответов: 1

Перенос точек из texrtfile в базу данных SQL (поле point)


Hi to everybody,

first here is my code 

<pre>  private void GetButtonsTextFile(object sender, EventArgs e)
        {

controlName = ((Control)(sender)).Name;  //Type c# -> string | Type-> Database char
parentName = ((Control)(sender)).Parent.Name; //Type in c# -> string | Type-> Database char
controlLocation = ((Control)(sender)).Location;//Type in c# ->  System.Drawing.Point | Type in Database -> point
parentLocation = ((Control)(sender)).Parent.Location; //Type in c# System.Drawing.Point | Type in Database -> point

            datastring = controlName + ";" + parentName + ";" + DateTime.Now.ToString() + ";" + memberID + ";" + controlLocation + ";" + parentLocation;
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(filepath, true))
            {
                try
                {
                    file.WriteLine(datastring);
                }
                    catch (System.IO.IOException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }


Я пишу некоторый параметр объекта, который вызывает метод GetButtonsTextFile () в текстовый файл. Это прекрасно работает.

Теперь я хочу перенести содержимое текстового файла в столбцы таблицы моей базы данных mysql. Все типы являются строковыми. Только столбцы для buttonLocation и parentLocation находятся в точке типа (см. комментарии).

Я передаю содержимое текстового файла с помощью этого мехтода:

public void SendFileToDatabase()
      {
          try
          {
              OdbcConnection dbConnection = new OdbcConnection(connectionstring);
              dbConnection.Open();
              loadTxtToTable = "LOAD DATA LOCAL INFILE '" + filepath + "' INTO TABLE " + table + " FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";
              OdbcCommand LoadFileToTable = new OdbcCommand(loadTxtToTable, dbConnenction);
              LoadFileToTable.ExecuteNonQuery();
              dbConnection.Close();

          }
          catch (System.Data.Odbc.OdbcException ex)
          {
              MessageBox.Show(ex.ToString());
          }
      }


Без точечных параметров транфер работает нормально, но если я попытаюсь перенести точечные параметры в нужные поля, он не сработает.

Exeption говорит: не удается получить объект геометрии из данных, которые вы отправляете в поле геометрии

Я мог бы сделать их строковыми, но они нужны мне как точечные объекты, потому что позже я хочу отобразить их как точки На диаграмме. Или есть способ отобразить строковые точки из поля на диаграмму?

У кого-нибудь есть предложение?

Ценить.. Большое спасибо


Что я уже пробовал:

ищу похожие статьи, msdn, google

1 Ответов

Рейтинг:
4

#realJSOP

Вы должны хранить точки в базе данных в виде целых чисел (или поплавков, в зависимости от того, какой фреймворк пользовательского интерфейса вы используете). Вам понадобятся поля для X, Y, ширины и высоты, а также способ идентификации данной кнопки.


Member 12341536

Привет, Джон, спасибо, что ответил.

Ну, это, очевидно, простой способ сделать это.Я сделаю это так, как я думаю. Но есть ли у вас представление о том, в каком формате должен выглядеть тип "точка" в базе данных? Я имею в виду, ожидает ли он только 2 числа с пробелом между ними. например, "x y" или brakets и никакого пробела между x и y, как "{xy} " или запятая между X, y.. чем я мог бы изменить строку, чтобы она соответствовала ожидаемому формату. Может быть, он снова распознает струну как точку.

Заранее спасибо.