【发布时间】:2014-03-12 17:35:10
【问题描述】:
我在 Visual Studio 2010 中编程时遇到这个奇怪的错误。我在 SQL Server 中有一个名为“tag_id”的列。它是我的表的主键。如果我尝试在 Visual Studio 中的任何引用中使用“tag_id”,则应该是这样的
<asp:BoundField DataField="tag_id" HeaderText="Current Tags"/>
或者这个
string sql = "INSERT INTO [tag_names] ([tag_id], [name], [created_by], [created_date]) VALUES ('{0}','{1}', '{2}', GETDATE())";
我在任何地方使用它。根据使用情况,我会遇到各种不同的错误,但要点是它告诉我列 tag_id 不存在。但确实如此!让此代码工作的唯一方法是我从 SQL Server 复制“tag_id”,即字面意思“tag_id”并将其粘贴到 Visual Studio 中。虽然拼写完全相同,但除非我从 SQL Server 复制并粘贴它,否则它不会起作用。此外,如果我从 Visual Studio 复制并粘贴一个查询并将其放入 SQL Server,它会说找不到“tag_id”。就好像 Visual Studio 中的文本不适用于此列。如果我只输入名称,我对所有其他列都没有问题。
有人见过吗?
更新:
阅读 Gordon 和 Grantly 的建议后,我尝试检查下划线。对于那一列,当我将“tag_id”从 Visual Studio 复制并粘贴到记事本 ++ 时,它显示为“tag_id”。当我从 SQL Server 复制并粘贴“tag_id”时,它会显示为“tagUS_id”。即使我将它粘贴在这里,它也只是说“tag_id”,我必须手动添加“US”。但在记事本++中,它说“标签”,然后没有空格,字母“US”以黑色突出显示,然后是“id”。
这仅发生在此列中。其他带下划线的列工作正常。其他主键工作正常,其他外键工作正常。嗯?
【问题讨论】:
-
如果我不得不猜测,下划线可能不同。有短下划线和长下划线的例子。不过,我必须承认,我只看到过连字符的这个问题。
标签: c# sql sql-server visual-studio-2010