Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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# Case语句-使用BETWEEN。对SQL Server的Ms访问_C#_Ms Access_Switch Statement_Subquery - Fatal编程技术网

C# Case语句-使用BETWEEN。对SQL Server的Ms访问

C# Case语句-使用BETWEEN。对SQL Server的Ms访问,c#,ms-access,switch-statement,subquery,C#,Ms Access,Switch Statement,Subquery,Hi在ms access中进行了查询,因为我的数据库是access,但我正在C#RDLC中创建报告 我正在为报告制作DataAdapter,但我无法让这个案例陈述和两者之间的内容正常工作 有趣的是,它确实产生了正确的数据。。但我有一个错误: 函数参数列表中出现错误:无法识别“BETWEEN”。 无法分析查询文本 我试过很多方法,但似乎都做不好!任何建议都很好 它还有一个年(日期)错误和对年的更改,但当我将其更改回时,它仍然有效 更新-澄清(因为我含糊不清-抱歉) 所以我要澄清我的问题。 我的数

Hi在ms access中进行了查询,因为我的数据库是access,但我正在C#RDLC中创建报告

我正在为报告制作DataAdapter,但我无法让这个案例陈述和两者之间的内容正常工作

有趣的是,它确实产生了正确的数据。。但我有一个错误:

函数参数列表中出现错误:无法识别“BETWEEN”。 无法分析查询文本

我试过很多方法,但似乎都做不好!任何建议都很好

它还有一个年(日期)错误和对年的更改,但当我将其更改回时,它仍然有效

更新-澄清(因为我含糊不清-抱歉)


所以我要澄清我的问题。 我的数据库在访问中-不是sql server-这是我的一个坏标签

我已经在Access中创建了查询,它的工作原理与上面的一样。 但是,我尝试在VisualStudio中将其创建为报表的datatable,作为RDLC报表

在Dataset Designer中,我正在使用上面的查询添加一个datatable,但是由于前面提到的错误(介于两者之间),它无法工作

此后,我尝试了古斯塔夫的建议,用>和>=等替换介于两者之间,但现在我发现了这个错误

函数参数列表中出错:“开关函数不采用SQL语法。因此:

Switch([Age] <= 17, '0-17',
    [Age] <= 30, '18-30', 
    [Age] <= 45, '30-45', 
    [Age] <= 60, '45-60', 
    [Age] > 60, 'Over 60')
开关([年龄]
否则,当在数据库中输入错误的数据时(如未来日期)。

根据可用性和可维护性,用户定义的功能是当前场景中最合适的解决方案。

那么您尝试了什么?连接字符串是什么?那么您是否使用sql server?您在问题标题中对其进行了标记和提及,但问题的解释听起来好像所有内容都在Access中,没有任何内容这与sql server无关。你知道CASE是一个表达式,而不是一个语句吗?我知道,因为人们喜欢告诉人们称之为CASE语句……现在我就是其中之一。我删除了
sql server
标记,如果你使用的是Microsoft sql server,你应该使用这个标记。你问题中的所有内容都是针对MS Acc的ess.如果有与Sql Server相关的内容,您可以重新标记它,但请使用Sql Server的详细信息更新您的问题。是的,很抱歉使用Sql Server标记,我必须键入Sql并由服务器通过access进行选择。我指的是msaccess的Sql文本!抱歉!
Switch([Age] <= 17, '0-17',
    [Age] <= 30, '18-30', 
    [Age] <= 45, '30-45', 
    [Age] <= 60, '45-60', 
    [Age] > 60, 'Over 60')
    Select case when [Age] between 0 and 17 then '0-17' 
           when [Age] between 18 and 30 then '18-30' 
           when [Age] between 31 and 45 then '31-30' 
           when [Age] between 46 and 60 then '46-60' 
           when [Age] >60 then '>60'
            else 'Invalid Age' end 
    from (SELECT tblcustomers.firstname, tblcustomers.lastname, Year(Now())  
    Year([DOB])  AS Age FROM TblCustomers) as CountAge