-1

有人可以帮助我吗?

我必须在其他人创建的数据库中进行查询。我遇到的问题是表名包含三个空格。

查询示例:“SELECT * FROM Item Journal Line”。

无论如何它都不起作用,我尝试用[], `, ´´, '',' 包围表名,但没有任何效果。

关于如何在我的查询中处理此表的任何建议?我在网上搜索过,但没有找到任何可以帮助我的东西。我正在使用 SharpDevelop 使用 c#。

4

4 回答 4

3

如果你的表名是test table

在 MSSQL 中(我猜这是你正在使用的)运行

select * from "test table"

C#要在使用Escape Sequences中创建此字符串,并"使用\"

string queryStr = "select * from  \"test table\" " ;
于 2013-06-13T12:28:35.567 回答
2

访问包含空格或其他保留字符的 Sql Server 数据库表的认可方法是使用方括号。但是您不应该在其中包含 dbo 部分,否则搜索将失败,因为没有dbo前 3 个字符的表。

string strConnection = "server=***;" + "database=***;" + "uid=***;" + "pwd=***;"; 
string query = "SELECT * FROM [Item Journal Line]";
using(SqlConnection myConnection = new SqlConnection(strConnection))
using(SqlCommand command= new SqlCommand(query, myConnection))
{ 
     myConnection.Open(); 
     SqlDataReader reader = command.ExecuteReader() 
}

但是,如果您确实有名称如此奇怪的表,请考虑创建一个名称更容易使用的视图

于 2013-06-13T12:34:06.327 回答
1

Postgresql

 String query= "select * from appsetup.""fsd sdfsd sdfds"""

pass this query in `command` 
于 2013-06-13T12:41:40.520 回答
0

Dave Rook 在你的评论中说。

您提出的问题的答案在这里: 查询名称中有空格的表

        string sqlQuery = "SELECT * from [Item Journal Line]";  

这解决了你的问题吗?也许有人以您的桌子的名义添加了一个空格或一些邪恶的东西。

        string sqlQuery = "SELECT * from [Item Journal Line /n]"; 

如果这不能解决您的问题,则可能是您所问的问题之外的其他问题,您能否发布错误消息或告诉我们问题是否已解决?

于 2014-02-19T13:28:22.067 回答