用数据库的储存数据做查询,在SQL中的执行结果和C#中不同?
用数据库的存储数据做查询,在SQL中的执行结果和C#中不同?!
时间段查询,SQL中执行存储数据和在C#中执行储存数据结果不一样。
完全一样的输入参数:
FromDT "2013-09-12 11:50:20" string
ToDT "2013-09-12 12:10:20" string
sql中返回2条结果,11:53的和12:08的数据。
C#中只返回1条结果,12:08的。
为什么?为什么?为什么?
------解决方案--------------------
试试:
------解决方案--------------------
楼主,你在 SqlDataReader rdr = cmd.ExecuteReader();这个命令之后,有没有调用
while(rdr.Read())
{
...
}
这个格式?
如果只调用rdr.Read(),你就只读取了第一行数据。
时间段查询,SQL中执行存储数据和在C#中执行储存数据结果不一样。
完全一样的输入参数:
FromDT "2013-09-12 11:50:20" string
ToDT "2013-09-12 12:10:20" string
sql中返回2条结果,11:53的和12:08的数据。
C#中只返回1条结果,12:08的。
为什么?为什么?为什么?
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_select_onlytime";
SqlParameter inparm1 = cmd.Parameters.Add("@start", SqlDbType.DateTime );
SqlParameter inparm2 = cmd.Parameters.Add("@end", SqlDbType.DateTime);
inparm1.Direction = ParameterDirection.Input;
inparm2.Direction = ParameterDirection.Input;
String FromDT = dtpfrdat.Value.ToString("yyyy-MM-dd")+" "+dtpfrtim.Value.ToString("HH:mm:ss");
DateTime temp1=Convert.ToDateTime(FromDT);
inparm1.Value = temp1;
String ToDT = dtptodat.Value.ToString("yyyy-MM-dd") + " "+dtptotim.Value.ToString("HH:mm:ss");
DateTime temp2=Convert.ToDateTime(ToDT);
inparm2.Value = temp2;
SqlDataReader rdr = cmd.ExecuteReader();
------解决方案--------------------
试试:
ALTER procedure [dbo].[sp_select_onlytime]
(@start datetime, @end datetime)
as
select
*
from
TestRecord
where
(TestTime >= CONVERT(VARCHAR(30),@start,121) and (TestTime <= CONVERT(VARCHAR(30),@end,121));
------解决方案--------------------
楼主,你在 SqlDataReader rdr = cmd.ExecuteReader();这个命令之后,有没有调用
while(rdr.Read())
{
...
}
这个格式?
如果只调用rdr.Read(),你就只读取了第一行数据。