Как получить данные из базы данных SQL в локальную двойную переменную, используя c#? - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь вытянуть данные через соединение ODB C в две локальные двойные переменные, но у меня постоянно появляется синтаксическая ошибка, и я не уверен, что мне не хватает.

Я используя это для построения координат на карте.

Код:

using (ODBC.connect = new OdbcConnection(ODBC.connectionString))
{
    double Latitude = 0.0;
    double Longitude = 0.0;

    OdbcCommand command = new OdbcCommand("SELECT Latitude, Longitude INTO ?, ? FROM TrackVehicles WHERE Registration = ?", ODBC.connect);

    command.Parameters.AddWithValue("?1", Latitude);
    command.Parameters.AddWithValue("?2", Longitude);
    command.Parameters.AddWithValue("?3", textBox1.Text);

    try
    {
        ODBC.connect.Open();
        command.ExecuteNonQuery();

        gMap.Position = new GMap.NET.PointLatLng(Latitude, Longitude);
    }
    catch (OdbcException exception)
    {
        MessageBox.Show(exception.Message);
    }
}

Я получаю ошибку SQL:

ОШИБКА [42000] [ Sybase] [ODB C Драйвер] [SQL Anywhere] Синтаксическая ошибка рядом с '?' в строке 1

Я использовал вместо этого Parameters.Add(), но мне не повезло, так как я полный нуб.

1 Ответ

0 голосов
/ 16 февраля 2020

Со ссылкой на: https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcdatareader?view=netframework-4.8

Похоже, вы пытаетесь вернуть два значения из базы данных в ваш код C#.

using (ODBC.connect = new OdbcConnection(ODBC.connectionString))
{
    double Latitude = 0.0;
    double Longitude = 0.0;

    OdbcCommand command = new OdbcCommand("SELECT Latitude, Longitude FROM TrackVehicles WHERE Registration = ?", ODBC.connect);

    command.Parameters.AddWithValue("?1", textBox1.Text);

    try
    {
        ODBC.connect.Open();
        OdbcDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            Latitude = reader[0];
            Longitude = reader[1];
        }
        reader.Close()

        gMap.Position = new GMap.NET.PointLatLng(Latitude, Longitude);
    }
    catch (OdbcException exception)
    {
        MessageBox.Show(exception.Message);
    }
}
...