繁体   English   中英

如何使用 c# 从 SQL 数据库中提取数据到本地双变量中?

[英]How do I pull data from an SQL database into local double var using c#?

我正在尝试通过 ODBC 连接将数据提取到两个本地双变量中,但我不断收到语法错误,我不确定我错过了什么。

我正在使用它在地图上绘制坐标。

编码:

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][ODBC 驱动程序][SQL Anywhere]“?”附近的语法错误第 1 行

我已经考虑使用Parameters.Add()代替,但没有运气,因为我是一个完整的菜鸟。

参考: 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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM