アプリ版:「スタンプのみでお礼する」機能のリリースについて

Visual Web Developer を初めて使うのですが、どうも使い勝手が判らず困っています。

データベースの値をGridViewに表示するために、sqlDataSourceにSQLを書いて表示するまではわかったのですが、初期画面で、sqlDataSourceを非活性化(定義してあるデータのアクセスを止める)することはできないのでしょうか?
AccessだとActivateというようなプロパティがあって、ボタンを押すなどのタイミングで活性化、非活性化をすることができたような記憶があるのですが、Visual Web Developer ではこのようなプロパティ、メソッドはあるのでしょうか?
初歩的な質問だと思いますが、ネットを調べても判らなかったので教えて頂ければ幸いです。

A 回答 (2件)

SqlDataSourceはあんまり使ったことがないのですが、プロパティをチラ見した感じ、仰るようなものは無いのかなーというような印象を受けました。


なので、一般的な方法かどうかはわかりませんが下記のようなことを考えてみました。
初期状態でSELECTするSQLを空白の状態にしておいて、ボタンを押したタイミングでバインドする、みたいな感じです。


Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.SqlDataSource1.SelectCommand = "SELECT ""HOGE"", ""HUGA"", ""PIYO"" FROM ""HOGEHOHGE"""
Me.SqlDataSource1.DataBind()

End Sub


<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"></asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand=''></asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" Text="Button" />
    • good
    • 0
この回答へのお礼

返事が送れて失礼しました。
ソースまで書いていただきまして有難うございます。
確かにエラーが出てもトラップできればうまくいきそうな気がします。

お礼日時:2010/02/18 12:37

.NETのデータアクセス(ADO.NET)は、これまでの進化の歴史を反映して、さまざまな方法があります。


その中で、GridView+sqlDataSourceというのは、「最も簡単に、ノンプログラムで」DBの読込・削除・更新を実現する手段になっています。
そのため、非常に固定的なデータアクセスを行いますので、GridViewの表示時にDBに接続して取得、自動バインディングでデータが表示されるスキームになっています。
Gridview/sqlDataSourceで自動発生するイベントをフェッチし、イベントハンドラで細かく制御していく必要があります。
であれば最初から、TableAdapterやDataAdapterを使って、データ取得して手動バインドするアクセス法や、よりプリミティブなsqlDataReaderを使う方法など、プログラム的に細かい制御ができる方法を使用された方が良いと思われるのですが。。
外していたらすいません。

参考URL:http://www.amazon.co.jp/gp/reader/4891005491/ref …
    • good
    • 0
この回答へのお礼

有難うございました。
返事が送れて失礼しました。
仰るとおりの用途で作られているコンポーネントにそこまで期待するには無理そうですね。

お礼日時:2010/02/18 12:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!