【发布时间】:2014-03-03 15:04:49
【问题描述】:
我正在进行一个 winform C#/SQL 项目, 我在哪里有一个数据表,其中数据存储有相应的时间戳,例如当用户注册投诉时,准确/接近足够的时间戳存储在表中。以“MMM dd yyyy hh:mm:ss”格式存储,表列为“datetime”。
我需要选择表中日期为今天的所有条目... 到目前为止,这是我的代码..
SqlConnection tod1 = new SqlConnection(@"Data Source=2011-GOA-RCC3\SQLEXPRESS;Initial Catalog=IOB_Comm;Integrated Security=True");
tod1.Open();
SqlCommand todc1 = new SqlCommand();
todc1.Connection = tod1;
DateTime today = DateTime.Today;
//DateTime todayl = today.AddDays();
DateTime dnext = today.AddDays(1);
label4.Text = today.ToString("MMM dd yyyy 00:00");
label5.Text = dnext.ToString("MMM dd yyyy 00:00");
label6.Text = label4.Text;
label7.Text = label5.Text;
DateTime d1 = Convert.ToDateTime(label4.Text);
DateTime d2 = Convert.ToDateTime(label5.Text);
dateTimePicker3.Value = today;
dateTimePicker4.Value = dnext;
var d3 = Convert.ToString(label4.Text);
var d4 = Convert.ToString(label5.Text);
//todc.CommandText = "Select * from DCR Where Comp_Date >= '" + d1 + "' And Comp_Date <= '" + d2 + "' Order By Comp_Date Asc";
//todc.CommandText = "Select * from DCR Where Comp_Date '" + DateTime.Today + "'Order by Comp_Date Asc";
todc1.CommandText = "Select * from DCR Where Comp_Date >= '"+ dateTimePicker3.Text +"' And Comp_Date < '"+dateTimePicker4.Text+"' Order By Comp_Date Desc";
int a = todc1.ExecuteNonQuery();
label8.Text = a.ToString();
if (a > 0)
{
//bind to report viewer
}
但是int a = todc1.ExecuteNonQuery(); 总是返回-1。所以我诊断出我的查询没有正确执行。
我尝试了很多方法,但都没有奏效,更麻烦的是,类似的查询在 SQL 中完美执行。
【问题讨论】:
-
ExecuteNonQuery总是返回-1,因为你的命令是SELECT。请阅读文档。 -
这不好!这个日期(作为字符串)是什么意思:05/03/2014?是3月5日还是5月3日?使用通用的 YYYY-MM-DD。
-
@SonerGönül O.k.明白了你的意思,那我该如何继续呢?即使我要删除 int a =todc1.execurteNonQuery,选择查询仍然不会返回今天日期范围从例如 2014 年 2 月 28 日 00:00:00 到 2014 年 3 月 1 日...
-
@JohnnyMopp 我有另一种形式,我使用两个 datetimepicker 控件来选择两个独立的日期,比如 2014 年 2 月 25 日和 2014 年 2 月 28 日……该查询将重新运行这两天之间的所有行。我还使用了 executeNonquery 而不是 Execute Reader。它就像一个魅力......
标签: c# sql winforms sql-server-express