Я использую базу данных SQL Server Compact для хранения данных датчиков, собранных через последовательный порт, в приложении C #. Я использую следующий запрос для получения данных, и он отлично работает:
public List<Record> GetData(DateTime startDatetime, DateTime endDatetime, string sensor)
{
dataTable = new DataTable();
using (connection = new SqlCeConnection(connectionString))
{
connection.Open();
dataAdapter = new SqlCeDataAdapter("SELECT * FROM data WHERE sensor = @sensor AND dt BETWEEN @startDatetime AND @endDatetime", connection);
dataAdapter.SelectCommand.Parameters.AddWithValue("@startDatetime", startDatetime);
dataAdapter.SelectCommand.Parameters.AddWithValue("@endDatetime", endDatetime);
dataAdapter.SelectCommand.Parameters.AddWithValue("@sensor", sensor);
dataAdapter.Fill(dataTable);
connection.Close();
}
List<Record> records = new List<Record>();
foreach (DataRow row in dataTable.Rows)
{
records.Add(new Record
{
Id = (int)row["Id"],
dt = (DateTime)row["dt"],
sensor = row["sensor"].ToString(),
port = (int)row["port"],
measuredValue = row["measuredValue"].ToString(),
value = (double)row["value"],
unit = row["unit"].ToString()
});
}
return records;
}
Проблема в том, что если я удаляю все записи в базе данных и жду, пока база данных заполнится несколькими записями , запрос не даст результатов!
Это запрос на удаление:
public void DeleteAllData()
{
using (connection = new SqlCeConnection(connectionString))
{
connection.Open();
using (SqlCeCommand command = new SqlCeCommand("DELETE FROM data", connection))
{
command.ExecuteNonQuery();
}
connection.Close();
}
}
Работает только при перезапуске приложения.
Кто-нибудь знает, почему я не могу получить какие-либо записи после использования запроса на удаление? Я подтверждаю, что база данных содержит записи.