Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
Sql server 关键字UNION附近的语法不正确_Sql Server - Fatal编程技术网

Sql server 关键字UNION附近的语法不正确

Sql server 关键字UNION附近的语法不正确,sql-server,Sql Server,谁能告诉我在下面的查询中写了什么错误,以便显示此错误消息 strSelectQuery = "SELECT LED_ID AS PK_ID, FIRST_NAME + ' ' + LAST_NAME AS NAME" + " FROM M_LEADERLED INNER JOIN M_USER_DETAILS" + " ON M_LEADERLED.LED_ID = M_USER_DETAILS.PK

谁能告诉我在下面的查询中写了什么错误,以便显示此错误消息

strSelectQuery = "SELECT LED_ID AS PK_ID, FIRST_NAME + ' ' + LAST_NAME AS NAME"
                        + " FROM M_LEADERLED INNER JOIN M_USER_DETAILS"
                        + " ON M_LEADERLED.LED_ID = M_USER_DETAILS.PK_ID"
                        + " WHERE (M_LEADERLED.LEADER_ID = " + Session["UserID"].ToString() + ""
                        + " AND M_USER_DETAILS.ACTIVE = 1 AND M_LEADERLED.START_DATE <= Getdate()"
                        + " AND M_LEADERLED.END_DATE > Getdate())"
                        + " UNION SELECT PK_ID, FIRST_NAME + ' ' + LAST_NAME AS NAME"
                        + " FROM M_USER_DETAILS WHERE PK_ID = " + Session["UserID"].ToString() + ";";

您需要在会话[UserID]的输出周围加上单引号

+ " WHERE (M_LEADERLED.LEADER_ID = '" + Session["UserID"].ToString() + "'"
我是否应该提到,您应该:

在尝试切换会话[UserID]之前,是否对会话[UserID]执行空检查? 如果可以避免的话,千万不要用这种方式执行SQL—这是一个巨大的安全漏洞
编辑:基于OP提供的更新信息,因为键是数字的,所以不必单引号。您确实需要检查会话[UserID]的输出,因为它可能是垃圾或null,您需要向我们显示完整构造的SQL字符串。

可能是哪条错误消息?如果您在执行此查询时收到此消息,然后,我建议您打印查询字符串,并在搜索PK_ID和LED_ID字段数字或字符串时手动运行它。您可以编辑您的答案以显示strSelectQuery的完整值吗?@preety-您有两个对会话[UserID]的引用,您是否对它们都引用过?如果是,那么现在的错误消息是什么?您是否检查了从会话[UserID]获得的内容?您还应该使用调试器跳过该行,然后在即时调试窗口中调出strSelectQuery,并提供该字符串的内容。