首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于SQL取Ecexl 根据日期过滤的有关问题

2012-05-10 
关于SQL取Ecexl根据日期过滤的问题using (OleDbConnection OleConn new OleDbConnection(sConnectionStr

关于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加单引号不成字符串了吗?一个时间格式,一个字符串格式,当然查询错误了
[解决办法]

C# code
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了

热点排行