Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数类型';Edm.DateTime';和';Edm.String';与此操作不兼容_C#_Asp.net_Telerik - Fatal编程技术网

C# 参数类型';Edm.DateTime';和';Edm.String';与此操作不兼容

C# 参数类型';Edm.DateTime';和';Edm.String';与此操作不兼容,c#,asp.net,telerik,C#,Asp.net,Telerik,我试图过滤网格中同一列中的两个不同的(数据选择器)。我尝试使用这两个字段来获取命令。整个过滤过程是在代码隐藏中进行的,到目前为止,它适用于网格中的其他字段。但我有一个奇怪的例外: {“此操作的参数类型'Edm.DateTime'和'Edm.String'不兼容。 接近大于或等于表达式,第6行,第15列。“} 在数据库中,该字段是一个日期时间,是一个单列 我的代码: <telerik:GridBoundColumn DataField="EntryDa

我试图过滤网格中同一列中的两个不同的(数据选择器)。我尝试使用这两个字段来获取命令。整个过滤过程是在代码隐藏中进行的,到目前为止,它适用于网格中的其他字段。但我有一个奇怪的例外:

{“此操作的参数类型'Edm.DateTime'和'Edm.String'不兼容。 接近大于或等于表达式,第6行,第15列。“}

在数据库中,该字段是一个日期时间,是一个单列

我的代码:

                    <telerik:GridBoundColumn DataField="EntryDate" DataType="System.DateTime" DataFormatString="{0:dd/MM/yyyy}" FilterControlAltText="Filter EntryDate column"
                        HeaderText="Date" SortExpression="EntryDate" UniqueName="EntryDate" FilterControlWidth="50px">
                        <FilterTemplate>
                            From
                            <telerik:RadDatePicker ID="FromOrderDatePicker" runat="server" Width="100px" AutoPostBack="true"
                                OnSelectedDateChanged="FromOrderDatePicker_SelectedDateChanged" OnPreRender="FromOrderDatePicker_PreRender" />
                            to
                            <telerik:RadDatePicker ID="ToOrderDatePicker" runat="server" Width="100px" AutoPostBack="true"
                                OnSelectedDateChanged="ToOrderDatePicker_SelectedDateChanged" OnPreRender="ToOrderDatePicker_PreRender" />

                        </FilterTemplate>
                    </telerik:GridBoundColumn> 
发布代码是多余的(对于toDatePicker)

private void ExpressionChanged()
{
//重置
TimeReportGrid.MasterTableView.FilterExpression=null;
TimeReportGrid.MasterTableView.Rebind();
如果(ViewState[“FromDatePicker”]!=null&&
ViewState[“ToDatePicker”]!=null&&
ViewState[“FromDatePicker”]。ToString()!=“”&&
ViewState[“ToDatePicker”]。ToString()!=“”)
{

TimeReportGrid.MasterTableView.FilterExpression+=“(it.EntryDate>=”+“ViewState[“FromDatePicker”]。ToString()+”)和(it.EntryDate我的问题的答案非常简单,我只需声明EntryDate是一个看起来像这样的日期时间

TimeReportGrid.MasterTableView.FilterExpression += "(it.EntryDate>= DATETIME '" + ViewState["FromDatePicker"].ToString() + " 00:00') AND (it.EntryDate<= DATETIME '" + ViewState["ToDatePicker"].ToString() + " 23:59')";

TimeReportGrid.MasterTableView.FilterExpression+=“(it.EntryDate>=DATETIME'”+ViewState[“FromDatePicker”].ToString()+“00:00”)和(it.EntryDate快速看一眼,似乎您正在尝试将日期和字符串进行比较。我没有太多使用表达式,但我假设最后是您的FilterExpression。您能先将字符串解析为日期吗?@Chris您的意思是我应该将ViewState解析为日期时间吗?我想是的。我不习惯使用表达式,但看起来您ave类似于
it.EntryDate>='2013-05-14'
和类似于
it.EntryDate>=DateTime.Parse('2013-05-14')
的东西看起来更好。正如我所说,虽然我没有做过表达式,所以我只是给你一些东西看一下,因为我不是真的能够给你一个解决方案(不确定Edm.DateTime是否特别,例如是否与DateTime兼容)..@Chris解决方案非常简单,我只需在>=之后添加一个DateTime声明,它就可以工作了“^^^^很高兴听到它。你应该给出这个问题的实际答案(而不仅仅是评论)用更改后的代码描述您的答案,以便您可以将其标记为正确答案,其他任何人都可以轻松找到答案。
 private void ExpressionChanged()
    {
        //reset
        TimeReportGrid.MasterTableView.FilterExpression = null;
        TimeReportGrid.MasterTableView.Rebind();


        if (ViewState["FromDatePicker"] != null &&
            ViewState["ToDatePicker"] != null &&
            ViewState["FromDatePicker"].ToString() != "" &&
            ViewState["ToDatePicker"].ToString() != "")
        {
            TimeReportGrid.MasterTableView.FilterExpression += "(it.EntryDate >= '" + ViewState["FromDatePicker"].ToString() + "') AND (it.EntryDate <= '" + ViewState["ToDatePicker"].ToString() + "')";
        }
TimeReportGrid.MasterTableView.FilterExpression += "(it.EntryDate>= DATETIME '" + ViewState["FromDatePicker"].ToString() + " 00:00') AND (it.EntryDate<= DATETIME '" + ViewState["ToDatePicker"].ToString() + " 23:59')";