Почему SQL-запрос не дает результатов? - PullRequest
0 голосов
/ 19 марта 2019

Я использую базу данных 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();
        }
}

Работает только при перезапуске приложения.

Кто-нибудь знает, почему я не могу получить какие-либо записи после использования запроса на удаление? Я подтверждаю, что база данных содержит записи.

...