2012-02-23 48 views
2

我在我的SQL Server數據庫中有一個名爲NAMES的表。我想檢索整個表,並把它變成一個數據集:C# - >從SQL Server 2008檢索數據集

//get the connection string from web.config 
string connString = ConfigurationManager.ConnectionStrings["Platform"].ConnectionString; 
DataSet dataset = new DataSet(); 

using (SqlConnection conn = new SqlConnection(connString)) 
{ 
    SqlDataAdapter adapter = new SqlDataAdapter();     
    adapter.SelectCommand = new SqlCommand("NAMES", conn); 
    adapter.Fill(dataset); 
} 

這雖然拋出一個SQL例外,

「無效的對象指名道姓」 ......

我究竟做錯了什麼?

+2

adapter.SelectCommand =新的SqlCommand( 「選擇* [名稱]」,康涅狄格州); – 2012-02-23 12:09:56

回答

7

打開連接!!!!!!

//get the connection string from web.config 
string connString = ConfigurationManager .ConnectionStrings["Platform"].ConnectionString; 
DataSet dataset = new DataSet(); 

using (SqlConnection conn = new SqlConnection(connString)) 
{ 
    SqlDataAdapter adapter = new SqlDataAdapter();     
    adapter.SelectCommand = new SqlCommand("select * from [NAMES]", conn); 
    conn.Open(); 
    adapter.Fill(dataset); 
} 
+0

打開連接肯定會有幫助,但我不認爲這是你會看到的例外。無效的對象名稱肯定表明它已經到達數據庫。我假設上面的代碼是一個減少版本,只是意外地省略了數據庫開放。 – Chris 2012-02-23 12:16:38

+0

你可以通過SQL管理工作室訪問數據庫來檢查這個表是否真的存在 – 2012-02-23 12:19:48

+0

+1,謝謝你得到我的投票 – 2012-02-23 13:28:18

7

您沒有將實際的SQL選擇命令傳遞給SqlCommand構造函數。

+0

如果我將「NAMES」更改爲「SELECT * FROM NAMES」,我仍然得到相同的錯誤 – user559142 2012-02-23 12:12:37

+1

您是否嘗試了[NAMES]而不是(按照@ AmenAyach的建議)?名稱是ODBC保留關鍵字,因此在解析SQL時會引起潛在的混淆,除非您正確轉義它。 – Chris 2012-02-23 12:19:09

0

首先檢查select * from dbo。[Names]是否在urql中正在運行?

 string connString = ConfigurationManager .ConnectionStrings["Platform"].ConnectionString; 
     Dataset ds=new Dataset(); 
     SqlConnection con = new Sqlconnection(connString); 
     SqlDataAdapter adapter = new SqlDataAdapter("Select * from dbo.[Names]",con); 
     adapter.Fill(ds);