2013-06-13 47 views
-1

有沒有人可以幫助我?在SqlT表中用c#查詢空間

我必須在其他人創建的數據庫中進行查詢。我遇到的問題是表名包含三個空格。

查詢示例:「SELECT * FROM Item Journal Line」。

它無論如何都不起作用,我已經嘗試了圍繞表名與[],`, ´´, '','但沒有任何工作。

有關如何在查詢中解決此表的任何建議?我在網上搜索過,但沒有找到任何可以幫助我的東西。我正在用SharpDevelop在C#中工作。

+3

什麼是您的DBMS?你能提供一些代碼嗎? – Serge

+0

我沒有看到列出的雙引號:'String sqlString = @「SELECT * FROM」「Item Journal Line」「」;' – DonBoitnott

+0

@DonBoitnott - >它不起作用,但謝謝 – pidel

回答

3

如果表名是test table

在MSSQL中(我想這是你使用的是什麼)運行

select * from "test table" 

C#使用Escape Sequences創建這個字符串,並與\"

逃脫 "
string queryStr = "select * from \"test table\" " ; 
2

訪問Sql Server數據庫表的准許方式con包含空格或其他保留字符是通過使用方括號。但是你不應該包含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() 
} 

不過,如果你真的有這麼奇怪的名字表,可以考慮創建具有更容易名稱的視圖,

1

工作在Postgresql

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

pass this query in `command` 
0

戴夫·魯克說,它在你的註釋。

答案你問的問題是在這裏: Query a table that has spaces in its name

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

這是否解決問題了嗎?也許有人在你桌子的名字上添加了一個空間或者一些邪惡的東西。

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

如果不解決您的問題可能是除了你問別的東西,你可以發佈錯誤消息,或者告訴我們,如果問題得到解決?