【问题标题】:Need help Regarding datetimepicker需要帮助关于 datetimepicker
【发布时间】:2014-03-11 10:01:34
【问题描述】:

我在 C# winform 中使用了 datetimePicker。我想根据所选日期显示数据。基本上我所做的是,

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
i = 0;
cmd = "Select * from CourierReturn where ReturnDate = '" + dateTimePicker1.Value.Date+"'";
sda = new SqlDataAdapter(cmd, con);
sda.Fill(dst,"CourierReturn");
con.Open();
maxr = dst.Tables["CourierReturn"].Rows.Count;
navigate();
}

在导航()中

private void navigate()
    {
        textBox1.Text = dst.Tables[0].Rows[i]["CourierNo"].ToString();
        textBox2.Text = dst.Tables[0].Rows[i]["BranchNo"].ToString();
        textBox3.Text = dst.Tables[0].Rows[i]["ReturnDate"].ToString();
        textBox4.Text = dst.Tables[0].Rows[i]["Reason"].ToString();
    }

我已经完成了这个编码。

 SqlConnection con = new SqlConnection(@"Data Source=.\Aroona;Initial Catalog=ACSDatabase;Integrated Security=True");
    SqlDataAdapter sda;
    DataSet dst = new DataSet();
    string cmd;
    int maxr, i;

在 Next Button 中,有 Next 的编码,previous、first 和 last 也是如此。

当我在程序运行时从 datetimepicker 更改日期时,它不会更改文本框中的值。我试过这个。 dst.Clear(); 但它不起作用,它必须这样做。请帮我。

【问题讨论】:

  • 您是否尝试在 navigate() 方法中设置断点以确保在更改日期时它实际上正在执行?此外,您在调用填充后打开数据连接。如果要保持连接打开,则应将其移至填充之前。如果您不需要保持打开状态,则将其完全删除,填充方法将自动为您打开和关闭连接。

标签: c# sql-server winforms visual-studio-2010


【解决方案1】:

试试:

cmd = "SELECT * FROM CourierReturn WHERE cast(ReturnDate as date) = '" + dateTimePicker1.Value.Date.ToString("yyyyMMdd")+"'";

【讨论】:

  • 它也不起作用:-(但是你能告诉我你为什么要做这个演员吗(ReturnDate as date)?
  • 因为如果type是datetime,则日期包含时、分、秒。使用cast作为日期,日期只包含年、月和日。在这一行设置断点“sda = new SqlDataAdapter(cmd, con);”并查看 cmd 值,然后粘贴到此处。
  • 我找到了解决方案!实际上,我最后并没有关闭连接。但是,这样做之后它就起作用了,每当 datetimepicker 的值发生变化时,它必须先清除数据集,然后才能完美运行。顺便说一句,谢谢你的帮助。
猜你喜欢
  • 2014-09-25
  • 1970-01-01
  • 2017-08-05
  • 2023-04-06
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多