2016-07-22 6 views
0

既存のSql Server DBからデータセットに対して異なるクエリをテストしようとしています。私は、私がやっているプロジェクトのID列によって行をつかむことができる必要があります。しかし、単純なクエリのように見えるものは、結果が得られません。 load.LengthからDataTable.Select()の単純なテストでは、結果が得られません

DataSet prodspdata = new prodspDataSet(); 

DataRow[] load; 
load = prodspdata.Tables["TripNumber"].Select("[ctripnumber] = '21605178'"); 

Console.WriteLine(load.Length); 
Console.ReadLine(); 

出力は、私はその負荷がSelect()クエリから返される行の配列でなければなりません文書から理解して0です。私はload.length 1.

ことを期待するように、この結果はデー​​タで見てから存在していることを知っている私は、私は何かが欠けていなかったことを確認するためにはSQL Server Management Studio内からクエリをテストした:

SELECT * FROM TripNumber WHERE ctripnumber = '21605178' 

これは、期待どおりに1行を返します。

選択クエリが不正ですか?私はC#の新しいブランドですが、間違ってテストしていますか? loadに結果が含まれているかどうかを知る必要があるため、クエリが意図したとおりに機能することがわかります。

EDIT:DataTableに行がないようです。

DataTable loadTable; 
loadTable = prodspdata.Tables["TripNumber"]; 
Console.WriteLine(loadTable.Rows.Count); 
Console.ReadLine(); 

これはloadTable.Columns.Count一方0行を返しますが、私に133

を与える私は多分、TableAdapterのとは何かをステップを逃しましたか?

+1

prodspDataSetのコードを表示すると役に立ちます – Juan

+0

@Juan prodspDataSet.Designer.csコードを指定していますか? 8400行があります。 Visual Studioでプロジェクト>新規データソースの追加を使用してデータソースとして追加したときに自動生成されました。 – lutze

+1

デバッガからデータセットを探索するときに行がありますか? http://stackoverflow.com/questions/491555/how-can-i-easily-view-the-contents-of-a-datatable-or-dataview-in-the-immediate-w – Juan

答えて

1

私は実際にデータセットに何かを埋め込んでいないため、問題を引き起こしていました。私はTableAdapterをひどく無視しました。私が追加されたコードは以下のとおりであった:

prodspDataSetTableAdapters.TripNumberTableAdapter ta = new prodspDataSetTableAdapters.TripNumberTableAdapter(); 

DataTable loadTable = ta.GetData(); 

ので(TableAdapterの者の設定に基づいて)インスタンス化TableAdapterのデータで埋めテーブルずに基本的には、テーブル、列、値なしでデータベースの空のスキーマを取得します。ルーキーミス。

2

フィルタリングで角括弧を使用しないでください。

load = prodspdata.Tables["TripNumber"].Select("ctripnumber = '21605178'"); 

また、Visual Studioデバッガを使用してDataSetsとDatatablesの内容を確認することもできます。

+0

括弧で区切られた列名を試しましたが、結果は同じです。 – lutze

関連する問題