【问题标题】:selecting amountofpersons where date and separated time is compared with sql date/separated time C#选择将日期和分隔时间与 sql 日期/分隔时间 C# 进行比较的人数
【发布时间】:2012-01-01 05:00:15
【问题描述】:
connect.Open();
dtpTime.CustomFormat = "H:mm";
dtpDate.CustomFormat = "M/d/yyy";

int plaatsen=50;
int personennu=0;

dbreader = null;
dbcommand = new OleDbCommand("SELECT aantalpersonen FROM bestelling WHERE datum="+dtpDate.Text+" ", connect);

dbreader = dbcommand.ExecuteReader();
while (dbreader.Read())
{
    personennu = personennu + Convert.ToInt32(dbreader.GetValue(0));
}
if (personennu < plaatsen)
{
    lblPersonen.Text = (plaatsen - personennu).ToString();
}
else 
{
    lblPersonen.Text = "unavailable"; 
}
connect.Close();

我正在尝试比较日期时间选择器和 sql (oledb),以便我可以从我的表中获取人数(荷兰语为 aantalpersonen)。它必须比较日期和时间,所以如果一个从 2010 年 11 月 18 日 9 点开始,我将它与 10 点之一进行比较,它应该给我位置(荷兰语中的 plaatsen),但是如果没有剩下的地方(超过 50 个地方),那么它应该说不可用,但我似乎无法得到 c# 的时间日期以及 sql 的时间和日期正确它现在给了我 50 个时间。

【问题讨论】:

  • 请注意,如果我删除 WHERE 语句(所以所有内容),代码没有问题,所以它在日期部分(sql/db 访问 c# 之间的对话)请注意我也将我的访问数据库的类型设置为日期时间较短的日期不知道这是否重要,但只是你知道
  • 让它工作 dbcommand = new OleDbCommand("SELECT aantalpersonen FROM bestelling WHERE datum=@mydate", connect); OleDbParameter myParam = new OleDbParameter(); myParam.ParameterName = "@mydate"; myParam.OleDbType = OleDbType.DBDate; myParam.Value = dtpDate.Value; MessageBox.Show(myParam.Value.ToString()); dbcommand.Parameters.Add(myParam);
  • 您应该将其作为答案发布并接受,而不是在评论中发布您的答案。
  • 感谢评论,现在修复了 lars

标签: c# sql date time datetimepicker


【解决方案1】:

搞定了

dbcommand = new OleDbCommand("SELECT aantalpersonen FROM bestelling WHERE datum=@mydate ",connect); 
OleDbParameter myParam = new OleDbParameter();
myParam.ParameterName = "@mydate"; 
myParam.OleDbType = OleDbType.DBDate; 
myParam.Value = dtpDate.Value; 
MessageBox.Show(myParam.Value.ToString()); 
dbcommand.Parameters.Add(myParam);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多