- PR -

ASP.NETのDataGrid

1
投稿者投稿内容
はは
会議室デビュー日: 2003/01/17
投稿数: 13
投稿日時: 2003-07-11 18:25
VB.NET+ASP.NETでWebアプリケーションを開発中です。
全くの初心者で、内容が変かもしれませんが、教えていただければと思います。
DBはSQLサーバを使用しています。

データアダプタ構成ウィザードを使用して構成し、データセットを作成し、DataGrid
へバインドさせることはできました。
しかし構成ウィザードを使用すると、SQL文でWHEREで指定する場合、変数で指定
する事は可能なのでしょうか?
SELECT文のところに変数を使いたいのですが、変数宣言してPageLoad時に
その変数に値を代入しようとしてもエラーが発生してできません。

皆さんに伝わったかどうか不安ですが、どうぞ宜しくお願いします。
もし、詳しい本やWebページがあれば、ご紹介いただければと思います。
宜しくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-11 18:55
こんにちは。
引用:

ははさんの書き込み (2003-07-11 18:25) より:
しかし構成ウィザードを使用すると、SQL文でWHEREで指定する場合、変数で指定
する事は可能なのでしょうか?
SELECT文のところに変数を使いたいのですが、変数宣言してPageLoad時に
その変数に値を代入しようとしてもエラーが発生してできません。


少し手直しすれば、できないことはないと思います。
ただ、「ここはVSが作ったところだから勝手にさわるな」と、
コメントが入っているので、やっぱりさわらない方が無難かも。
(また、作り直される可能性があるので)

 そこで、どこか別のところで設定されている内容を変えてしまいます。
まず、SQL文そのものを、変数を使いたい場所を「@PARAM1」というように、
“@”+“変数名”に変えます。代入し直します。
次に、SqlParameterというものを作ります。
これから先については、マニュアル(MSDN)に書いてありますので、
そちらを参照してください。
はは
会議室デビュー日: 2003/01/17
投稿数: 13
投稿日時: 2003-07-11 19:32
ご意見ありがとうございます。
やはり触らないほうがよさそうですね。
触ろうかと思ったのは、DataGridのある列を通貨スタイルで表示させたかったのです。
ウィザードを使用すると簡単にできるのですが、コードで指定する方法が
わからなかったもので。。。
コードで指定する簡単な方法って、あるんでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-14 08:52
引用:

ははさんの書き込み (2003-07-11 19:32) より:
触ろうかと思ったのは、DataGridのある列を通貨スタイルで表示させたかったのです。
ウィザードを使用すると簡単にできるのですが、コードで指定する方法が
わからなかったもので。。。
コードで指定する簡単な方法って、あるんでしょうか?


 ウイザードでやってくれるものだけだと、実行時には表示されませんよね?
Fillして、DataGridにバインドしているところがあると思いますが、
SQL文をさわるならその直前でやってやればいいと思います。
SQLの実行結果なら、この会議室内で以前見かけたように思います。
モデラート
会議室デビュー日: 2003/06/29
投稿数: 9
お住まい・勤務地: 東京都
投稿日時: 2003-07-14 16:01
こんにちは。

Jittaさんの懇切丁寧な返答の後に蛇足です。
通貨で表示させるには、DataGridの列を一つ一つ指定して表示させれば可能ですよ。
------------------------------------------
<asp:DataGrid runat="server"...>
  <Columns>
    <asp:BoundColumn DataField="[フィールド名]"
     DataFormatString="[表示形式]".../>
    '以下一つ一つの列について同様に書いていく。
  </Columns>
</asp:DataGrid>
------------------------------------------

上記の[フィールド名]の部分にSQL文で引っ張ってきた列名を入れて、[表示形式]のところは以下のような指定で表示されます。

 ・通貨の場合(¥0)  "{0:c}"
 ・桁区切りつき数値の場合(1,000)  "{0:n0}"
 ・日付の場合(2003/01/01)  "{0:d}"

という感じで指定すれば、お望みの形式で表示されます。
参考になったかどうか分かりませんが、上記のようなやりかたでどうでしょうか。
はは
会議室デビュー日: 2003/01/17
投稿数: 13
投稿日時: 2003-07-17 11:37
お返事が大変遅くなってしまい、申し訳ございません。
何せ熱で寝込んでいまして・・・・。
皆さんのご意見を参考にして頑張ってみます。
ありがとうございました。
1

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