Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在mySQL中存储和收集双值_C#_Mysql - Fatal编程技术网

C# 在mySQL中存储和收集双值

C# 在mySQL中存储和收集双值,c#,mysql,C#,Mysql,从周五开始,我就一直在努力处理这段代码,但我就是不能让它工作,我想把两个双值存储到一个表中,我得到的最接近的结果是丢失了坐标值上的小数,这在地图上是错误的 我的存储方法如下所示: public bool saveLatLong(Double lat, Double lon, String mapID) { bool worked = true; String myConnection = WebConfigurationManager.ConnectionStrings[&

从周五开始,我就一直在努力处理这段代码,但我就是不能让它工作,我想把两个双值存储到一个表中,我得到的最接近的结果是丢失了坐标值上的小数,这在地图上是错误的

我的存储方法如下所示:

   public bool saveLatLong(Double lat, Double lon, String mapID)
{
    bool worked = true;
    String myConnection = WebConfigurationManager.ConnectionStrings["webbased"].ConnectionString;
    MySqlConnection myConn = new MySqlConnection(myConnection);
    String strSQL = "UPDATE map SET Latitud = '"+lat+"' AND Longitud = '"+lon+"' WHERE ID = '" + mapID + "';";
    MySqlCommand myCommand = new MySqlCommand();
    myCommand.Connection = myConn;
    myCommand.CommandText = strSQL;
    try
    {
        myConn.Open();
        myCommand.ExecuteNonQuery();
    }
    catch (MySqlException myE)
    {
        worked = false;
        Console.WriteLine("It's all gone south!: " + myE.Message);
    }
    finally
    {
        myConn.Close();
    }
    return worked;
}
   public void getCordinates(String mapID, out double latitude, out double longitude)
{
    double nlat = 0.0;
    double nlon = 0.0;
    String myConnection = WebConfigurationManager.ConnectionStrings["webbased"].ConnectionString;
    MySqlConnection myConn = new MySqlConnection(myConnection);
    String strSQL = "SELECT Latitud,Longitud FROM cases WHERE ID = '"+mapID+"';";
    MySqlCommand myCommand = new MySqlCommand();
    myCommand.Connection = myConn;
    myCommand.CommandText = strSQL;
    try
    {
        myConn.Open();
        MySqlDataReader myReader;
        myReader = myCommand.ExecuteReader();

        while (myReader.Read())
        {
            if (myReader.GetValue(0).Equals(DBNull.Value)) { nlat = 0.0; } else { nlat = myReader.GetDouble(0); }
            if (myReader.GetValue(1).Equals(DBNull.Value)) { nlon = 0.0; } else { nlon = myReader.GetDouble(1); }                 
        }

    }
    catch (MySqlException myE)
    {
        Console.WriteLine("It's all gone south!: " + myE.Message);
    }
    finally
    {
        myConn.Close();
    }
    latitude = nlat;
    longitude = nlon;
}
在调试中,MySQL字符串看起来还可以:更新映射集Latitud='577141957471802'和Longitud='119798612594604',其中ID='563-34'

我的get方法如下所示:

   public bool saveLatLong(Double lat, Double lon, String mapID)
{
    bool worked = true;
    String myConnection = WebConfigurationManager.ConnectionStrings["webbased"].ConnectionString;
    MySqlConnection myConn = new MySqlConnection(myConnection);
    String strSQL = "UPDATE map SET Latitud = '"+lat+"' AND Longitud = '"+lon+"' WHERE ID = '" + mapID + "';";
    MySqlCommand myCommand = new MySqlCommand();
    myCommand.Connection = myConn;
    myCommand.CommandText = strSQL;
    try
    {
        myConn.Open();
        myCommand.ExecuteNonQuery();
    }
    catch (MySqlException myE)
    {
        worked = false;
        Console.WriteLine("It's all gone south!: " + myE.Message);
    }
    finally
    {
        myConn.Close();
    }
    return worked;
}
   public void getCordinates(String mapID, out double latitude, out double longitude)
{
    double nlat = 0.0;
    double nlon = 0.0;
    String myConnection = WebConfigurationManager.ConnectionStrings["webbased"].ConnectionString;
    MySqlConnection myConn = new MySqlConnection(myConnection);
    String strSQL = "SELECT Latitud,Longitud FROM cases WHERE ID = '"+mapID+"';";
    MySqlCommand myCommand = new MySqlCommand();
    myCommand.Connection = myConn;
    myCommand.CommandText = strSQL;
    try
    {
        myConn.Open();
        MySqlDataReader myReader;
        myReader = myCommand.ExecuteReader();

        while (myReader.Read())
        {
            if (myReader.GetValue(0).Equals(DBNull.Value)) { nlat = 0.0; } else { nlat = myReader.GetDouble(0); }
            if (myReader.GetValue(1).Equals(DBNull.Value)) { nlon = 0.0; } else { nlon = myReader.GetDouble(1); }                 
        }

    }
    catch (MySqlException myE)
    {
        Console.WriteLine("It's all gone south!: " + myE.Message);
    }
    finally
    {
        myConn.Close();
    }
    latitude = nlat;
    longitude = nlon;
}
无论我尝试过什么,结果都是0.0,我就是不明白为什么,我相信我已经尝试过了所有的方法,但我对这个问题没有头绪。我怀疑我在get方法中运行的getDouble命令有问题,但我不知道还能做什么


我很欣赏任何关于问题所在的想法或见解。

它们被描述为Double,但由于mysql没有Double,我怀疑它们应该是float。尝试用句点替换逗号。MySQL可能不理解国际格式。它可以正常存储。在double中,但由于某些奇怪的原因,当我收集时,它仍然是0.0值:/Gordon,谢谢你的帮助!