2012-02-23 14 views
2

SQL ServerデータベースにNAMESというテーブルがあります。私は、テーブル全体を取得し、データセットにそれを置くしようとしています:...これはしかし、SQL例外をスロー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); 
} 

"無効なオブジェクト名NAMES"

私は間違って何をしていますか?

+2

adapter.SelectCommand = new SqlCommand( "select * from [NAMES]"、conn); –

答えて

7

接続を開く!!!!!!

+0

接続を開くと確かに役立つだろうが、私はあなたが見る例外ではないとは思わない。無効なオブジェクト名は、データベースに到達したことを示しています。私は上記のコードは、ちょうど誤ってDBの開口部を省略したカットダウン版だと仮定します。 – Chris

+0

SQL管理スタジオを介してデータベースにアクセスして、このテーブルが実際に存在するかどうかを確認することができます –

+0

+1、ありがとうございます。 –

7

SqlCommandコンストラクタに実際のSQL selectコマンドを渡していません。

+0

"名前から選択*名前"に変更した場合でも同じエラーが発生します – user559142

+1

代わりに([@ AmenAyachの提案に従って)[[名前]]を試しましたか? NamesはODBCの予約語ですので、適切にエスケープしない限り、SQLを解析する際に混乱を招く可能性があります。 – Chris

0

まず、[名前]が[url sql]で選択されているかどうかを確認します。

 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); 
関連する問題