- PR -

エイリアスを含むselect文のDataSetをGridViewにBindするとエラーになります。

1
投稿者投稿内容
matrix
会議室デビュー日: 2008/07/13
投稿数: 15
投稿日時: 2008-07-13 10:34
初めてご質問させていただきます。どうぞよろしくお願いします。
環境は、WinXP Pro SP2,VS2005,C#,SQLServer2005 Ex です。
エイリアスを含むselect文のDataSetをGridViewに表示しようとすると、DataBind()で、「名前 ' Title' のフィールドまたはプロパティが選択されたデータ ソースに見つかりませんでした。」とエラーになります。
以下のソースの2行目のSQL文の様に「タイトル as Title」 とするとエラーします。
"select タイトル from DVDLIST"とエイリアスを使用しなければエラーせずGridViewは正しく表示されます。
デザインでSqlDataSourceにエイリアスを含むSQL文でもとGridViewに表示されるため、エイリアスselect文でも機能すると思うのですが....
賢者の皆様、ご指摘、ご指導、お願い申し上げます。

DataSet vDs = new DataSet();
SqlDataAdapter vDataAdaAdapter = new SqlDataAdapter(”select タイトル as Title from DVDLIST”, "TEST");
vDataAdaAdapter.Fill(vDs);

BoundField gvFieldTypeBound = new BoundField();
gvFieldTypeBound.HeaderText = "Title";
gvFieldTypeBound.DataField = "Title";
gvFieldTypeBound.SortExpression = "Title";
gvControlField = gvFieldTypeBound;
GridView1.Columns.Add(gvControlField);

GridView1.DataSource = vDataSet;
GridView1.DataBind(); <--- ここで「名前 ' Title' のフィールドまたはプロパティが選択されたデータ ソースに見つかりませんでした。」とエラーが発生します。

GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2008-07-13 23:56
引用:

GridView1.DataSource = vDataSet;



このvDataSetには何がセットされているのでしょうか?
matrix
会議室デビュー日: 2008/07/13
投稿数: 15
投稿日時: 2008-07-14 06:18
すみません、コードが間違っていました。

DataSet vDataSet = new DataSet();
SqlDataAdapter vDataAdaAdapter = new SqlDataAdapter(”select タイトル as Title from DVDLIST”, "TEST");
vDataAdaAdapter.Fill(vDataSet);

BoundField gvFieldTypeBound = new BoundField();
gvFieldTypeBound.HeaderText = "Title";
gvFieldTypeBound.DataField = "Title";
gvFieldTypeBound.SortExpression = "Title";
gvControlField = gvFieldTypeBound;
GridView1.Columns.Add(gvControlField);

GridView1.DataSource = vDataSet;
GridView1.DataBind(); <--- ここで「名前 ' Title' のフィールドまたはプロパティが選択されたデータ ソースに見つかりませんでした。」とエラーが発生します。


ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2008-07-14 08:32
情報共有のためにリンクしておきます。

http://vsug.jp/tabid/63/forumid/-1/threadid/11246/scope/posts/Default.aspx
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3608007&SiteID=7

# 面倒なのでこれら2つのサイトへの投稿はしていません
マルチポストをした場合はそれぞれのサイトへその旨を書いておいてくださいね。
matrix
会議室デビュー日: 2008/07/13
投稿数: 15
投稿日時: 2008-07-14 21:06
まず、この質問について複数のサイトに投稿する際のご案内(マルチポスト)が漏れてていた事をお詫びいたします。
「マルチポスト」と言う用語さえ知らなかった初心者で作法を粗相してしまいました。
さて、本件の質問につきましてMSのフォーラムでSurferOnWww さんのご指摘で解決いたしました。
原因は、gvFieldTypeBound.DataField = " Title"; で、エイリアス名の先頭にスペースが入っていたと言う愚かなコードミスが原因でした。
ご返答いただきました方々、本当にありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)