- PR -

Select文を利用してDataGridにデータを表示したい

投稿者投稿内容
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2005-10-21 16:32
いつもお世話になっています。

ただ今、ASP.NETでウェブアプリケーションを作成しています。

SQLサーバーにデータがあり、そこからC#を利用して条件にあったものをSELECT文で読み込み、
DataGridに表示したいと思っています。
データ全部をDataGridに表示するのは、

sqlDataAdapter.Fill(DS);
DataBind();

で成功したのですが、条件設定するし、SELECT文を利用すると表示が出来なくなります。
今のところ書かれてるコードは以下のとおりです。

SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = "connectionString(接続するためのストリング)";
SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon);
sqlda.Fill(ds)
sqlda.Update(DS)
DataBind();


connectionStringはデータを全部表示するsqlDataAdapterを【ツールボックス】のタブの【データ】より作成したときに作成されたconnectionStringと同じ内容です。
全部表示するためのsqlAdapter、splConnectionと、データを格納するDSはデザインの【ツールボックス】のタブの【データ】より作成しました。

なにぶん初心者ですので、ご教授よろしくお願い申し上げます。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-10-21 16:41
NAL-6295です。

とりあえず、
表示ができません。
と仰っている状態の詳細を知りたいですね。

それと、

引用:

はなさんの書き込み (2005-10-21 16:32) より:
いつもお世話になっています。

SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = "connectionString(接続するためのストリング)";
SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon);
sqlda.Fill(ds)
sqlda.Update(DS)
DataBind();




太字にした行はいりません。
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2005-10-21 16:59
NAL-6295さん

お返事ありがとうございます。
早速、要らない部分は削除してみました。

【表示が出来ません。】

というのは、見出し以外何も表示されない、ということです。
DataGridの設定はtableNameが【DataSource】になっているので、
要素の名前が見出しとして表示されています。
それ以外のデータは表示されません。


sqlDataAdapter.Fill(DS);
DataBind();


を実行すると、DSの中身が要素名以外のデータも表示されます。

よろしくお願い申し上げます。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-10-21 17:11
引用:

SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon);



多分、このセレクト文に該当するデータが無いのでは無いかと思うのですが、どうでしょうか。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-10-21 17:13
引用:

はなさんの書き込み (2005-10-21 16:59) より:

というのは、見出し以外何も表示されない、ということです。



確認ですが、where句を削除して、全件抽出しようとしたらどうなりますか?
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2005-10-21 17:27
NALさん

SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon);

↑これに該当するデータはありました。
私も疑問に思い、Enterprise ManagerのSQLクエリアナライザーで確認しました。
SQLクエリアナライザーでこのSQL文は妥当なようで、きちんとデータを表示することができました。

trapemiyaさん
Where句を削除してみました。
全件抽出にしてみましたが、やはり何も表示されませんでした。

よろしくお願いいたします。
明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2005-10-21 17:58
ブレークポイントで止めるなどして、
DataSetの中身を見たらどうでしょうか?


OracleSQLパズル
http://oraclesqlpuzzle.hp.infoseek.co.jp
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-10-21 18:01
引用:

はなさんの書き込み (2005-10-21 16:32) より:

SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = "connectionString(接続するためのストリング)";
SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon);
sqlda.Fill(ds)
sqlda.Update(DS)
DataBind();


最初の投稿から引用しますが、最後のDataBind();っていうのはサブルーチンですか?
一般的には、
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
になるのですが・・・。

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