为什么SQL查询不返回结果?

时间:2019-03-19 13:34:39

标签: c# database sql-server-ce sql-delete

我正在使用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();
        }
}

仅当我重新启动应用程序时,它才有效。

有人知道为什么使用删除查询后我无法检索任何记录吗?我确认数据库确实包含记录。

0 个答案:

没有答案