【发布时间】:2018-06-01 14:56:36
【问题描述】:
下面是我测试过的 SQL 查询工作正常
Select
data_info.user_id, data_info.type_id, data_info.specific_title,
data_info.content, life_area.type_id, life_area.type_id
From
data_info
Left Join
life_area On data_info.type_id = life_area.id
Where
data_info.user_id = '0001'
现在我正在尝试将工作 SQL 转换为 asp.net MySqlCommand,但它无法工作并显示语法错误
MySqlCommand cmd = new MySqlCommand(
"Select data_info.user_id,data_info.type_id,data_info.specific_title,data_info.content,"+
"life_area.type_id,life_area.type_id" +
"FROM data_info LEFT JOIN life_area ON data_info.type_id = life_area.id" +
"Where data_info.user_id='0001'" , conn);
【问题讨论】:
-
从代码中打印出 SQL 字符串,并仔细查看,尤其是缺少逗号或空格之类的内容。
-
我看不到字符串之间的空格,比如
... area.type_id" (space?) + "FROM ... -
看起来您在选择列表的末尾和初学者的
FROM之间缺少一个空格。我建议改为创建一个逐字字符串(在它前面放一个'@'),这样你就可以包含换行符而不是你目前拥有的串联混乱。同样在将来,您确实应该包含您收到的错误消息。 -
@juharr,由于我刚开始学习asp.net,请多解释一下,谢谢
-
@epiphany 好吧,具体而言,您的查询是“... life_area.type_idFROM ...”,因为您的第二个字符串不以空格结尾,而第三个字符串不以空格开头。如果您在字符串之前放置一个
@,它允许它跨越多行,它被称为verbatim string,当您尝试运行此代码时,您会收到一条错误消息,您应该始终在问题中包含错误消息。跨度>