【发布时间】:2018-08-14 07:10:36
【问题描述】:
首先我遇到了这个错误:
无效的对象名称“product_images_temporary”
在我添加了[] 括号后,一切正常。但是当我再次删除它们时,我收到了这个错误:
''附近的语法不正确
为什么会这样:
[product_images_temporary]
但这会引发异常(“'' 附近的语法不正确”):
product_images_temporary
更多代码:
try
{
using (var sqlConnection = new DapperHelper().DatabaseConnection())
{
var sqlStatement = "SELECT * FROM product_images_temporary";
sqlConnection.Execute(sqlStatement);
}
}
catch (Exception e)
{
}
product_images_temporary 是 SQL Server 中的保留字吗?喜欢datetime 等?我无法解释。
【问题讨论】:
-
只是表名。名称中有一个 unicode 字符会破坏它。将其按原样转换为 varbinary 以查看究竟是什么。
-
请注意,如果它与 [] 一起使用,您还应该通过重新键入来重命名表。
-
是的,
s和_之间有一个 invisible unicode 字符。如果您执行SELECT CONVERT(varchar(100),N'product_images_temporary'),您会注意到返回值为product_images?_temporary。 -
只需使用编辑器并使用箭头键逐步浏览名称。在
images之后,就在_之前,您会注意到,您的光标不会移动... Alex K. 是对的,这个 - 嗯 - 问题似乎也在真实表的名称中。这 - 很可能 - 不是你想要的...... -
是的,因为没有一个叫做
product_images_temporary的对象,所以它叫做product_images_temporary。它们可能看起来相同,但是,第一个在s和_之间没有Unicode 字符。我强烈建议您修改对象的名称。
标签: c# sql-server sql-server-2008 dapper