在 winform 应用程序中,我有一个用于显示数据库值的数据 GridView 。我使用以下这些代码来查看两个特定日期时间之间的结果,例如 6/5/2010 和 7/5/2010 之间的结果,但它只显示在这些日期时间中准确更新的行。我的意思是它只是向我显示具有确切注册日和完成日的行。我想查看这些时间之间的所有结果。
private void button1_Click(object sender, EventArgs e)
{
sql = new SqlConnection(@"Data Source=PC-PC\PC;Initial Catalog=Test;Integrated Security=True");
adapter = new SqlDataAdapter("select EntryID,Name,FamilyName,Registrationday,Finishday,Fee from Entry where Registrationday =@Registrationday AND Finishday =@Finishday", sql);
adapter.SelectCommand.Parameters.AddWithValue("@Signday", Convert.ToDateTime(textBox1.Text).ToShortDateString());
adapter.SelectCommand.Parameters.AddWithValue("@Finishday", Convert.ToDateTime(textBox2.Text).ToShortDateString());
dt = new DataTable();
adapter.Fill(dt);
dataGridView1.DataSource = dt;
}
最佳答案
对于重叠您的间隔的行:
Registrationday <= @Finishday AND Finishday >= @Registrationday
这匹配以下所有行:
-------R-------F-----------
*------------*
*------*
*---*
*---*
*------*
对于完全在您的间隔内的行:
Registrationday >= @Registrationday AND Finishday <= @Finishday
这只匹配这些行:
-------R-------F-----------
*---*
*---*
关于c# - 在 C# 中搜索 2 个日期时间之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473237/