- - PR -
抽出結果について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-30 12:36
皆様こんにちは。オウドーと申します。
使用しているDBMSはSQL-Server2005 使用言語:C#です。 さて早速ですが質問を申します。 Aテーブル 社員コード 社員名 入社日 1 ○○ 2007 2 □□ 2006 3 △△ 2005 //社員コードはオートインクリメントです。 //全てNULL許容はしてません。 例えばこのようなテーブルがあると仮定します。 そして、FillメソッドにてSQLを定義します。 select 社員名 as 社員の名前,入社日 as 入社の日 from Aテーブル 当然、Aテーブルの「社員の名前」列及び、「入社の日」がDataSetの中にDataTableとして生成されます。 しかし、困ったことに既存のテーブルの横に抽出したクエリがひっついている状況なんです。以下のような状況です。 社員コード 社員名 入社日 社員の名前 入社の日 1 ○○ 2007 2 □□ 2006 3 △△ 2005 //かなりずれておりますが○□△は社員の名前! //年は入社の日!! //1,2,3は社員コードです。 //直せば早いのですがさらにミスを犯すとえらいことになりそうなので //よろしくお願いします。編集 これで、DataRowなどで列を追加したときエラーが起きてしまいとても迷惑です。 私が教えて欲しいことは以下の2点です。 抽出結果だけを返すことは可能か。 可能とすればどのようにして抽出結果だけを返してくれるか。 よろしくお願いします。 [ メッセージ編集済み 編集者: オウドー 編集日時 2007-07-30 12:38 ] | ||||||||||||
|
投稿日時: 2007-07-30 14:05
コードが書いてないんでなんともいえませんが、Fillする直前に.Columns.Clear()すればいいなじゃないですかね。
| ||||||||||||
|
投稿日時: 2007-07-30 15:22
返答ありがとうございます。 べるさんが申しましたことを試してみた結果以下のようなエラーがでました。 この列は、主キーの一部であるため、削除できません。 DataSetの中にDataTableがありテーブル選択し、右クリック→追加→クエリー→ SQLを打ち込み→C#上でFill呼び出し。 上記の工程でブレークポイントを置きDataSetの中を参照してみると不要な列が残ります。 不要な列とは初めにお話した件にお話したとおりです。 | ||||||||||||
|
投稿日時: 2007-07-30 15:53
ただ、不要な列が「残る」ということは、どっかで追加したものなんですよね。それはどこなんでしょう。
そもそも何プロジェクトですか?webアプリとかwindowsアプリとか。 | ||||||||||||
|
投稿日時: 2007-07-30 16:04
お返事ありがとうございます。 (データセットのデザイナか何かかな。。) ↑その通りです。分かりにくく申し訳ありません。Windowsアプリです。 ただ、不要な列が「残る」ということは、どっかで追加したものなんですよね。それはどこなんでしょう。 ↑ データセットをクリアしてからすぐにFillにて呼び出しを行ってるので不要な列が残るってことはないとは思うのですがいかがでしょうか。 | ||||||||||||
|
投稿日時: 2007-07-30 17:32
コードを書いた記憶がないなら、とりあえず自動生成されたソースを確認してみてはいかがでしょう。 xsdファイルのどこかに「社員コード」の記述があるんだと思います。 IDEはVisual Studio2005であってますよね? | ||||||||||||
|
投稿日時: 2007-07-30 17:43
お返事ありがとうございます。 this.DataSet.Claer(); クリアのメソッドです。 Fillメソッドは以下の通りです。 this.TableAdapter.FillDefinition(this.DataSet.DataTable,WhereAssumption); WhereAssumptionには社員コードが入ります。 xsdファイルのどこかですか。ありがとうございます。 IDEはVisual Studio2005であっております。 それにしてもFill使いすぎなのかな。それも不安になってきました。 | ||||||||||||
|
投稿日時: 2007-07-30 18:53
あ、型付データセットですね。デザイナにカラムとして表示されていたらSELECTするかどうかに関係なく
データセットにカラム自体は入っちゃうと思います。(たとえColumns.Clearできてもダメかも) クエリ追加するとき「メインスキーマと違います」的な警告でてませんかね。 |