日期:2014-05-17  浏览次数:20723 次

c#datetime比较
string sql1 = "select * from tongji where shijian >='" + dtp.Value.ToString("yyyy-MM-dd hh:mm:ss") + "'";
SqlCommand sqlcom = new SqlCommand(sql1, conn1);
int  i = Convert.ToInt32(sqlcom.ExecuteScalar());

上边实现的是DateTimePicker控件输入值和数据库中比较,且返回该行的行数,dtp.Value是从DateTimePicker控件中的数值,上边的执行了怎么总数返回一个值 7 ,请问这段代码有问题吗?应该怎么改正?谢谢!!
------最佳解决方案--------------------
sqlcom.ExecuteScalar()这个东西不是返回行数的。
ExecuteScalar()是返回查询结果的第一行,第一列的值。

要返回总行数用 select count(*) from xxx然后ExecuteScalar()就可以了
------其他解决方案--------------------
select count(*) from
------其他解决方案--------------------
ExecuteScalar()方法用错了吧!!!
------其他解决方案--------------------
返回7行数据,有什么问题?。
------其他解决方案--------------------
你想要什么结果?
ExecuteScalar这个方法是从数据库中检索单个值返回值是object类型,必须用与它在数据库里存放的类型相同类型或者可以转换成的类型
------其他解决方案--------------------
把sql1 的内容直接在数据库里面执行以下试一试……
------其他解决方案--------------------
返回总条数
select count(1) from tongji 
速度比较快点
------其他解决方案--------------------
ExecuteScalar,没看清楚
string sql1 = "select count(*) from tongji where shijian >='" + dtp.Value.ToString("yyyy-MM-dd hh:mm:ss") + "'";
------其他解决方案--------------------
谢谢,各位搞定了