【问题标题】:Missing operand after '12' operator'12' 运算符后缺少操作数
【发布时间】:2013-05-14 17:25:42
【问题描述】:

我有这样的代码:

 DataRow[] ClassTime = DateTime.Tables["Table"].Select("ClassListingDate=" + Convert.ToDateTime(DDLClassDate.SelectedItem.Text) + "");

其中 DateTime 是包含 ClassOffering 字段的数据集,该字段是日期类型,并且包含一个值为 5/15/2007 12:00:00 AM 的值

DDLClassDate.SelectedItem.Text contains a value 5/15/2007 12:00:00 AM 

执行上述行后,它会抛出异常Missing operand after '12' operator。 它是什么类型的异常?以及我应该怎么做才能解决这个问题。感谢您的帮助。

【问题讨论】:

    标签: asp.net c#-4.0 datatable dataset datarow


    【解决方案1】:

    对于DateTime 列使用DataTabe.Select,您应该DateTime 的值括在单引号中。

     DataRow[] ClassTime = DateTime.Tables["Table"]
                                   .Select("ClassListingDate='" +
                                    Convert.ToDateTime(DDLClassDate.SelectedItem.Text) + "'");
    

    不太清楚为什么你的DataSet 被命名为DateTime

    考虑以下示例:

    DataTable dt = new DataTable();
    dt.Columns.Add("ClassListingDate", typeof(DateTime));
    DateTime dtNow = DateTime.Now.Date;
    dt.Rows.Add(DateTime.Now.Date);
    dt.Rows.Add(DateTime.Now.Date.AddDays(1));
    dt.Rows.Add(DateTime.Now.Date.AddDays(-1));
    DataRow[] ClassTime =dt.Select("ClassListingDate='" + dtNow + "'");
                                                    ^^^^          ^^^^^
                                                    //Single quotes
    

    以上将在ClassTime 中返回一行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      相关资源
      最近更新 更多