@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

SQL

投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-05-18 11:32
お世話になります。

データベースに接続していているデータより該当する項目を含むデータを抽出してGridViewに表示したいのですが、「データソースの構成」―「WHERE句の追加」で条件をセットすればいいと思うのでがセットの仕方がわかりません。
このダイアログ内の「ソース:」内の項目のセットの仕方で解決しそうなのですがどのようにセットするのでしょうか?また、説明したWebなどご存知でしたら教えてください。

下記のような項目が、DBにあり

Date, k-1, k-2,,,,k-6
としてこの中にある特定の日付をページ表示時または、ボタンを押したときに表示させたいです。

VS2005 C# ASP.NET
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-05-18 19:16
http://www.atmarkit.co.jp/fdotnet/asp2review/asp2review04/asp2review04_02.html

とりあえずこれでも読め
SQlに関しては具体的にテーブル名とか検索する項目がわからないと答えようがない
ただそれ以前に入門書ぐらいはちゃんと読め
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-05-18 19:20
http://www.atmarkit.co.jp/fnetwork/rensai/sql01/sql1.html

SQlに関してはこちらをどうぞ 
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-05-19 09:22
お世話になります。

教えていただいたページを参考にし試してみました。結果

DBの「カスタムSQLステートメントまたはストアドプロシージャを指定する」でSELECT文を下記のようにしてBETWEEN 以降の条件を直接書き込んだときこれを満たした表示をしてくれます。これは、これでOKですが、プログラム上で任意の日付にセットして表示させたいのですがこれはどうやって実現できますか?
可能であれば、PAGE_LOAD のタイミングで当月の日付を調べ自動でセットし表示させたいのですが。
GridView が自動で読む前にセットできますか?もう少し教えてください。


SELECT Date, IsOff, WorkStartTime1, WorkEndTime1, WorkStartTime2, WorkEndTime2, WorkStartTime3, WorkEndTime3 FROM Holidays WHERE (Date BETWEEN '2008/05/10' AND '2008/05/15') ORDER BY Date
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-05-19 15:07
sql内に@fromdateとか定義しておいて、SqlDataSourceのSelectingイベントでe.Command.Parameters["@fromdate"].Value =〜
等とすればできます。けど[当月の日付]固定ならsqlでDATEADDとかDATEPARTとか駆使すれば
パラーメータなしでできそうですけどね。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-05-19 16:30
お世話になります。

下記のようにして実行してみました。
「ParameterName '@StartDate' を持つ SqlParameter は、この SqlParameterCollection に含まれていません」というメッセージが出ます。確認したところ綴りは間違ってないようですが、どこが間違ってますか?
教えてください。

SELECT Date, IsOff, WorkStartTime1, ....... FROM Holidays WHERE (Date BETWEEN '@StartDate' AND '@EndDate') ORDER BY Date

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    :
    :
e.Command.Parameters["@StartDate"].Value = dtStart;
e.Command.Parameters["@EndDate"].Value = dtEnd;
}

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-05-19 17:19
SqlDataSourceの子要素の以下のような記述がないとだめです。
[データソースの構成]ウィザードで自動的に作成できます。
コード:
<SelectParameters>
                <asp:Parameter Name="StartDate" />
                <asp:Parameter Name="EndDate" />
            </SelectParameters>

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2008-05-19 17:20
ADO.NETの基礎がなってないようなので、
まずはADO.NET でのデータへの接続およびデータの取得(microsoft.com)の内容について理解するよう勤めてください。

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