如何从阅读器中删除前面的字符串?第一个字符串是正确的(“41 24.2028”),但后面的每个字符串都是堆叠的(“41 24.202841 24.2028”)。
我确实尝试清除LatTaken/LongTaken,消息框显示正确的字符串(“41 24.2028”)。
但是双精度.Parse(splitX[1]);显示一个错误(系统.索引超出范围异常:'索引在数组的边界之外。')
我该怎么办?还有别的办法吗?
connection.Open();
string sql = "SELECT LatTaken, LongTaken, Temp, humi, Baro, TempAir from ParsedReadings";
command = new SqlCommand(sql, connection);
reader = command.ExecuteReader();
while (reader.Read())
{
LatTaken += reader.GetValue(0);
LongTaken += reader.GetValue(1);
Temp += reader.GetDouble(2);
humi += reader.GetDouble(3);
Baro += reader.GetDouble(4);
TempAir += reader.GetDouble(5);
MessageBox.Show(LatTaken);
var splitX = LatTaken.Split();
MessageBox.Show(splitX[1]);
var degreeX = double.Parse(splitX[0]);
var minutesX = double.Parse(splitX[1]);
var splitX2 = LongTaken.Split();
var degreeX2 = double.Parse(splitX2[0]);
var minutesX2 = double.Parse(splitX2[1]);
var resultX = degreeX + minutesX / 60;
var resultX2 = degreeX2 + minutesX2 / 60;
Temp = 0f;
humi = 0f;
Baro = 0f;
TempAir = 0f;
LatTaken = string.Empty;
LongTaken = string.Empty;
}
reader.Close();
command.Dispose();
connection.Close();
}
1条答案
按热度按时间e5nszbig1#
问题是因为您在while循环的每次迭代中连接LatTaken和LongTaken值,而不是用数据库中的新值替换它们。
替换
至
这样,在循环的每次迭代中,LatTaken和LongTaken将使用数据库中的新值进行更新,而不是追加到以前的值。