4个回答
展开全部
首先你的查询逻辑里就是根据两个时间点返回一个数据源例如:DataTable/DataSet/Xml等
数据库连接字符例如:var connStr = Configuration.AppSetting["connStr"];
如:
public DataTable GetDataTable(DateTime? dtStart,DateTime? dtEnd)
{
var sql = "select * from [Table] Where 1 = 1 ";
if(dtStart.HasValue&&dtStart.Value!=DateTime.MinValue)
{
sql+= " and [Filed]>='"+dtStart+"' ";
}
if(dtEnd.HasValue&&dtEnd.Value!=DateTime.MinValue)
{
sql+=" and [Field]<='"+dtEnd+"' ";
}
return GetTable(sql,connStr);
}
private DataTable GetTable(string sql,string connectionString)
{
DataTable table = null;
var conn = new SqlConnection(connectionStrng);
try
{
conn.Open();
var cmd = new SqlCommand(sql,conn);
var sqlAdapter = new SqlAdapter();
table = new DataTable();
sqlAdaper.command = cmd;
sqlAdapter.Fill(table);
}
catch(Exceiption ex)
{
throw nex Exception(ex);
}
finally
{
conn.Close();
return table;
}
}
以上是C#实现的,一般都差不多这样写,但用ORM的话更简单,暂不提
如果是在sql里实现的话,更简单
select * from tablename where time between(time1,time2);
数据库连接字符例如:var connStr = Configuration.AppSetting["connStr"];
如:
public DataTable GetDataTable(DateTime? dtStart,DateTime? dtEnd)
{
var sql = "select * from [Table] Where 1 = 1 ";
if(dtStart.HasValue&&dtStart.Value!=DateTime.MinValue)
{
sql+= " and [Filed]>='"+dtStart+"' ";
}
if(dtEnd.HasValue&&dtEnd.Value!=DateTime.MinValue)
{
sql+=" and [Field]<='"+dtEnd+"' ";
}
return GetTable(sql,connStr);
}
private DataTable GetTable(string sql,string connectionString)
{
DataTable table = null;
var conn = new SqlConnection(connectionStrng);
try
{
conn.Open();
var cmd = new SqlCommand(sql,conn);
var sqlAdapter = new SqlAdapter();
table = new DataTable();
sqlAdaper.command = cmd;
sqlAdapter.Fill(table);
}
catch(Exceiption ex)
{
throw nex Exception(ex);
}
finally
{
conn.Close();
return table;
}
}
以上是C#实现的,一般都差不多这样写,但用ORM的话更简单,暂不提
如果是在sql里实现的话,更简单
select * from tablename where time between(time1,time2);
追问
我是在两个textbox里面输入的时间,转换一下就好了吗?
追答
对啊,你输入的时候就直接传给DateTime?就可以了啊
比如页面上就是
DateTime? dt = (default)DateTime;
var dtStart = this.TextBox1.Text;
if(DateTime.TryParse(dtStart,out dt))
{
}
这样就可以转换得到一个时间了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from tablename where time between(time1,time2);
select * from tablename where time >time1 and time <time2
select * from tablename where time >time1 and time <time2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先将时间用Conver转换一下,然后再查询
追问
我是在两个textbox里面输入的时间,转换一下就好了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的有点抽象,是要知道SQL,还是要知道winfrom怎么查数据库。。
追问
winfrom 如何查数据库?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询