关于SQL取Ecexl 根据日期过滤的问题
using (OleDbConnection OleConn = new OleDbConnection(sConnectionString))
{
OleConn.Open();
string sql = "SELECT * FROM [总$] WHERE F1>='2011/1/1' AND F1<='2011/1/2'";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
dtt.TableName = reportName;
OleDaExcel.Fill(dtt);
OleConn.Close();
OleConn.Dispose();
}
取出的dtt 的值
2011/1/1
2011/1/2
2011/1/10
2011/1/11
......
2011/1/19
各位大拿 这是什么原因了 怎么修改才好
[解决办法]
string sql = "SELECT * FROM [总$] WHERE F1>='2011/1/1' AND F1<='2011/1/2'";
这句话有问题 你的 2011/1/2加单引号不成字符串了吗?一个时间格式,一个字符串格式,当然查询错误了
[解决办法]
using (OleDbConnection OleConn = new OleDbConnection(sConnectionString)) { OleConn.Open(); string sql = "SELECT * FROM [总$] "; OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn); dtt.TableName = reportName; OleDaExcel.Fill(dtt); OleConn.Close(); OleConn.Dispose(); } datarow[] dr dtt.select("F1>='2011/1/1' AND F1<='2011/1/2'");DataTable newDt = new DataTable();Foreach(DataRow dr in drs[]){newDt.ImportRow(dr);}
[解决办法]
貌似excel中的排序有点小问题,大概是这样的 1,11,12,13,14,15,16,17,18,19,2,20,21,22 他的2会排在19后面20前面,貌似是格式的问题,还要在确认一下
[解决办法]
using (OleDbConnection OleConn = new OleDbConnection(sConnectionString))
{
OleConn.Open();
string sql = "SELECT * FROM [总$] ";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
dtt.TableName = reportName;
OleDaExcel.Fill(dtt);
OleConn.Close();
OleConn.Dispose();
}
datarow[] dr dtt.select("F1>='2011/1/1' AND F1<='2011/1/2'");
DataTable newDt = new DataTable();
Foreach(DataRow dr in drs[])
{
newDt.ImportRow(dr);
}
然后把 你的datatable中的时间格式改了不就ok了