【问题标题】:How to retrieve records which are 3 months old using Asp.net C#?如何使用 Asp.net C# 检索 3 个月前的记录?
【发布时间】:2017-11-22 11:11:08
【问题描述】:

我想将加入三个月的员工记录拉回公司,我使用的是accdb数据库,编码是asp.net c#,我总是卡在检索记录的日期和日期。

 public void DisplayProbationList()
{
     DateTime today = DateTime.Today;
    DateTime Threemonthago = DateTime.Now.AddMonths(-3);
    string connectionString = GetConnectionString();
    OleDbConnection connection = new OleDbConnection();

    connection.ConnectionString = connectionString;
    connection.Open();
    OleDbCommand command = connection.CreateCommand();
    //string sql = "SELECT * FROM HolidaysList";
    //command.CommandText = sql;
    OleDbCommand Command = new OleDbCommand("SELECT * FROM EmployeeDetails where Datejoining Between '"+ Threemonthago+"' AND '"+Today+"' ", connection);
    OleDbDataAdapter OleDbDataAdapter = new OleDbDataAdapter(Command);
    DataSet ds = new DataSet();
    OleDbDataAdapter.Fill(ds);
    Probation.DataSource = ds;
    Probation.DataBind();

}

【问题讨论】:

  • 你能展示一下你尝试过的东西吗,例如您使用的 SQL 代码?或者您用于访问数据库的 C# 代码,如果我们有一些需要纠正/帮助的地方,将会有所帮助。
  • 我已经上传了我的代码。
  • 这段代码遇到了什么问题?你可以做joiningDate >= ThreeMonthsAgoDate
  • 根据@ChetanRanpariya 的评论,您的 sql 可能如下所示:"SELECT * FROM EmployeeDetails where date(Datejoining) >= '" + Threemonthago.ToString("yyyy-MM-dd") + "'"。我添加了“ToString()”和“date()”来删除时间组件(在大多数情况下它应该无关紧要)。
  • 我也收到一个错误,因为标准表达式中的数据类型不匹配错误

标签: c# asp.net .net ms-access c#-4.0


【解决方案1】:

Access SQL 中需要 octothorpes 和日期表达式的强制格式:

OleDbCommand Command = new OleDbCommand("SELECT * FROM EmployeeDetails WHERE Datejoining BETWEEN #" + Threemonthago.ToString("yyyy'/'MM'/'dd") + "# AND #" + Today.ToString("yyyy'/'MM'/'dd") + "#", connection);

请注意,这种情况下的连接是安全的,因为值是在代码中生成的,因此不会发生注入。否则,请考虑使用参数。

【讨论】:

  • 我希望这是安全的,但没有参数绑定的方法吗,Gustav?在任何情况下,SQL 连接都不是一种鼓励的好方法。
  • 有的,我自己比较喜欢,而且很容易找到。在 SO 中,您甚至不必走得更远,可以找到多个示例。
  • 好的。我为不赞成投票道歉,但我认为高级代表用户应该树立最佳实践的榜样(尤其是对可能不知道的 OP)。抄送@Harsha
  • @halfer:抱歉,将您视为提问者。然而,虽然使用参数是首选方法,但您在这里插入了两个完全在代码中创建的日期值;连接这些是绝对安全的。请注意,我只是解决了一个小问题,我没有鼓励任何事情。
  • @halfer:好的。已添加评论。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多