在 C# 中查询 dBase 文件
Querying dBase file in C#
我的具体问题是我无法按日期字段进行筛选。
这是我的代码:
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Tools;Extended Properties=dBASE IV;User ID=Admin;Password=;";
using (OleDbConnection con = new OleDbConnection(connstr))
{
string sql = "select USERNUMBER,FIRSTNAME,LASTNAME, LASTACCESS from EMP WHERE TERMINATED=\"Y\" AND [LASTACCESS]<\"2001/10/20\"";
OleDbCommand cmd = new OleDbCommand(sql, con);
con.Open();
OleDbDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
如果我省略日期字段,效果很好。我只是不知道格式是什么。如果我使用 dbf 查看器实用程序查看 table,LASTACCESS 字段位于 dd.mm.yyyy 中(以句点作为分隔符,但我不知道这是否只是该实用程序的行为)。
如果我从日期字段中省略正斜杠,它可以工作,但 returns 零记录(即使我知道有)。
试试这个,忘记日期时间地狱
string sql = "select USERNUMBER,FIRSTNAME,LASTNAME, LASTACCESS from EMP WHERE TERMINATED=\"Y\" AND [LASTACCESS]<@StartDate";
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.AddWithValue("@StartDate", new DateTime(2001, 10, 20));
只需使用参数,而不必自己格式化它们。
该框架可以帮助您并提供已经过测试且运行良好的解决方案
我的具体问题是我无法按日期字段进行筛选。
这是我的代码:
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Tools;Extended Properties=dBASE IV;User ID=Admin;Password=;";
using (OleDbConnection con = new OleDbConnection(connstr))
{
string sql = "select USERNUMBER,FIRSTNAME,LASTNAME, LASTACCESS from EMP WHERE TERMINATED=\"Y\" AND [LASTACCESS]<\"2001/10/20\"";
OleDbCommand cmd = new OleDbCommand(sql, con);
con.Open();
OleDbDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
如果我省略日期字段,效果很好。我只是不知道格式是什么。如果我使用 dbf 查看器实用程序查看 table,LASTACCESS 字段位于 dd.mm.yyyy 中(以句点作为分隔符,但我不知道这是否只是该实用程序的行为)。
如果我从日期字段中省略正斜杠,它可以工作,但 returns 零记录(即使我知道有)。
试试这个,忘记日期时间地狱
string sql = "select USERNUMBER,FIRSTNAME,LASTNAME, LASTACCESS from EMP WHERE TERMINATED=\"Y\" AND [LASTACCESS]<@StartDate";
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.AddWithValue("@StartDate", new DateTime(2001, 10, 20));
只需使用参数,而不必自己格式化它们。
该框架可以帮助您并提供已经过测试且运行良好的解决方案