• 締切済み

SqlDataSourceについて

現在Visual Web Developer 2008で開発を行っています。 そこで質問なのですが、DBよりSqlDataSourceを通してテーブルデータを読み込み、GridViewにて表示させています。 しかし、そのテーブルを結合しなくてはならなくなりました。この場合SqlDataSourceには複数のテーブルを選択することは出来ないのでしょうか? また出来ない場合はカスタムにしてSELECTタブにjoin等で結合したSQL文を書くことになるのでしょうか?それともコード上に記載するのでしょうか? よろしくお願いいたします。

みんなの回答

  • ESE_SE
  • ベストアンサー率34% (157/458)
回答No.1

SQLDataSource上にクエリを書いているのではないでしょうか?その中にJOINでも何でも組み込んでOKですよ。 詳細の質問ならコードを抜粋してもらった方が・・・

subscribae
質問者

お礼

ご回答ありがとうございます。 SQLDataSourceのカスタム、ストアドプロシージャタブ選択して、コードを記述しています。コードは今現在用意出来ないためすみません。 ちなみにそのカスタムのSELECTタブでクエリを記述する際にサブクエリを用いた記述をしたのですが、それも不可でした。 文法が間違っているだけかもしれませんが、もしかしたら出来ないのかと思いまして・・・ ご教授のほうよろしくお願いいたします。

関連するQ&A

  • 【ASP.net】SqlDataSourceについて

    【ASP.net】SqlDataSourceについて index.aspxページにSqlDataSource1とGridView1と検索ボタンをセットし、 検索ボタンが押されると、SqlDataSource1にセットしているSQLにWHERE文を 追記して、GridView1を再表示させたいのですが、どのようにすれば良いのでしょうか? 現在のソースです・・・。 Dim Str As String = SqlDataSource1.SelectCommand Dim StrSql As String = "" StrSql = " WHERE lbl = ららら " Str = Str & StrSql SqlDataSource1.SelectCommand = Str GridView1.DataSource = SqlDataSource1.SelectCommand GridView1.DataBind() この状態だと、SQL文がBindされてしまい、DBから値がとれません。 解る方いらっしゃいましたらご教授お願いします。

  • SQLDataSourceのSQL文を変えて・・・

    ASP.Net にて日々壁が立ち上がっております。 GridView のデータソースであるSQLDataSourceのSQL文を変更し、尚且つページング、ソーティングも行いたいと思うのですが、なかなかうまく行きません。 Dim SQL As String 条件が複雑なので、SQL には自作したSQL文が入っております。 Me.SqlDataSource.SelectCommand = SQL Me.SqlDataSource.DataBind() このように記述するとGridViewのデータはSQL文に指定した通りに表示されるのですが、ページング、ソーティングを行うと、元々SqlDataSourceに指定してあるSQL文のモノが適応されて表示画面も元データの適応になってしまいます。 何かのサイトでこういう場合は DataSourceID をどうにかすると、ページング、ソーティングともに指定したSQL文のデータソース上で行われるみたいなことが書かれていたのですが、どう記述してよいかわかりません。 例えば・・・ Me.GridView.DataSourceID = "" Me.GridView1.DataBind() Me.GridView1.DataSourceID = Me.SqlDataSource.ID Me.GridView1.DataBind() こんな記述をしてみても、ページング、ソーティングはうまく動作しません。 動的なSQL文をGridViewに適応でき、ソーティング、ページングも適応させるにはどうしたらよいでしょうか? GridView にそういう事が簡単にできれば非常に使い勝手が良いのですが、 初心者的な考えなのかもしれませんが、何卒ご教授いただければと存じます。 よろしくお願い申し上げます。

  • データソースの非活性化について

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

  • 【ASP.NET】DataSetをSqlDataSourceに組み込めますか?

    ASP.NET Visual Studio 2005で開発を行っています。 GridViewのページングの機能を使用するには、「SqlDataSource」や「ObjectDataSource」を使用しないと有効にならないと思いますが、データベースがDataSetになっています。 この状態から、GridViewにデータをバインドし、ページングを有効にさせるには、どうしたらよいでしょうか?? SqlDataSourceにDataSetを持っていくという方法が調べても、分かりませんでした。 以下が使用しているソースです。 これですと、ページングが有効にならず、エラーになる状態です。 ============================================= Dim dSet As Data.DataSet = New Data.DataSet("データ") Dim dTbl As Data.DataTable Dim dRow As Data.DataRow dTbl = dSet.Tables.Add("データ") dTbl.Columns.Add("aaa", Type.GetType("System.String")) dRow = dTbl.NewRow() dRow("aaa") = "bbb" dTbl.Rows.Add(dRow) Me.GridView1.DataSource = dTbl Me.GridView1.DataBind() ====================================== どうぞ、宜しくお願いします。

  • SqlDataSource SelectCommand の書き方

    はじめまして。 現在aspx側でDBから読み込んだデータをGridViewに表示するプログラムを作っています。 環境 SQL Server 2005 Express Edition Visual Studio 2005 ASP.NET(VB) 初期表示として前の画面で選ばれた種別によってSQLが変わるので .aspxで <% dim s as string = "SELECT * FROM 台帳 " select case session("kind") case "A" s &= "WHERE 種別 LIKE '商品A%' " case "B" s &= "WHERE 種別 LIKE '商品B%'" case else ' 全種別を取得 end select hyo_1.SelectCommand = s & "ORDER BY 種別" %> <asp:SqlDataSource ID="hyo_01" runat="server" ConnectionString="<%$ ConnectionStrings:ConStr %>" /> と記述してみたのですが、結果は、何も表示されませんでした。 (順序を逆にしてみてもダメでした) この場合、<asp:SqlDataSource ~ /> で SelectCommand はクリアされてしまうのでしょうか? <asp:SqlDataSource ~ の中で SelectCommand="SELECT ~ " としたときに変数に入れたWHERE句を途中に埋め込むことがどうやってもできなかったので苦し紛れにやってみたのですが、、、 変数 whr="'商品A%'"として <asp:SqlDataSource ~ の中で SelectCommand="SELECT * FROM 台帳 WHERE 種別 LIKE <% = whr %> ORDER BY 種別" /> とするとエラーになってしまうし、いろいろ検索してみたのですが解決できませんでした。 SelectCommand の内容を場合によって変更するにはどのようにしたらよいのでしょうか? よろしくお願いいたします。

  • ASP.NET:複数結合テーブルのデータ変更方法について

    ASP.NET:複数結合テーブルのデータ変更方法について こんにちは。 現在Visual Studio2008(ASP.NET、ADO.NET) +SQL Server2005 Stdの環境でデータベースを参照したWebアプリケーションを作成しています。 GridViewを使い、データベースの内容を表示し、修正や追加、削除を行いたいと思っています。 (SQLのUpdate,Insert,Deleteに該当) 主キーが設定された単独のテーブルに対しては、GridView内のデータソースでデータベースを選び、 該当のテーブルを選択。その後「INSERT,UPDATEおよびDELETEステートメントの作成」オプションを選ぶことでこれらの変更方法が簡単に実装できるのを確認しております。 しかし、主キー外部キーの関係を持つ2つ以上のテーブルを結合したものに関してこれらの変更を行う場合は通常どのようにするのでしょうか。 何かヒントになるキーワードや参考になるコードを教えていただけないでしょうか? 単独のテーブルの時と同じく、結合したテーブルデータ(ビューに該当)をGridViewに表示し、そのGridView上で変更を行いたいと思っています。 SQL Server側でこれらのテーブルを結合したViewを作成し、これを選ぶことでGridViewに表示する事が可能なのは確認したのですが、やはり「INSERT,UPDATEおよびDELETEステートメントの作成」オプションは選択できませんでした。 以上よろしくお願いいたします。

  • 異なるデータベース間のテーブル結合

    DB名:db1 TABLE名:得意先マスタ DB名:db2 TABLE名:ユーザマスタ 以上のように、異なるデータベースに存在する2つのテーブルをLEFT JOINさせたいです。 結合条件は ユーザマスタ.得意先コード = 得意先マスタ.得意先コード とします。 この場合の結合方法を教えてください。 以下のようなSQL文を書いても駄目でした。 SELECT * FROM db1.ADMINISTRATOR.得意先マスタ AS  得意先マスタ   LEFT OUTER JOIN db2.ADMINISTRATOR.ユーザマスタ AS ユーザマスタ ON ユーザマスタ.得意先コード = 得意先マスタ.得意先コード よろしくお願いいたします。

  • PHP+MySQL 内部結合(INNER_JOIN)がうまく行きません。

    以下の文で「client_master」テーブルと「jobmaster0717」テーブルを内部結合させようとしているのですが、うまく行きません。どこがおかしいのでしょうか? <?php  // データベースサーバへの接続・データベースの選択  $db = mysql_connect('localhost','test','password');  $db_name = 'test';  mysql_select_db($db_name,$db);  // 処理対象テーブル  $tbl_name1 = "client_master";  $tbl_name2 = "jobmaster0717";    // 内部結合(INNER JOIN句)  $str_sql1 = "SELECT * FROM {$tbl_name1}"       . " INNER JOIN {$tbl_name2}"       . " ON {$tbl_name1}.company_ID"       . "  = {$tbl_name2}.client_ID;";  $rs1 = mysql_query($str_sql1,$db);  print "\"{$str_sql1}\"<br>\n";  // 結果セットの表示  show_rs($rs1,$db);  print "<br>\n";  // 結果セット(結果ID)の開放  mysql_free_result($rs1);    // データベースサーバの切断  mysql_close($db); ?>

  • 【ウェブサイト開発のエラー】spanタグが勝手に何度も生成されてしまっています。

    .NETで予約システムの開発を行っております。 初めてシステム開発を行っている初心者なのですが、どうしても困っていることがあるので助けていただないでしょうか。 困っていることというのは、 ページを作成中にSQLDataSourceなどを配置すると勝手にspanタグが生成されてしまい、 SQLの文の途中にspanタグが入り、SQLを認識してもらえなかったりします。 私としては何か実行するたびにspanタグが生成されるのを止められるようにしたいです。 コードは以下のようになってしまいます。 ---- <asp:SqlDataSource ID=" " runat="server" ConnectionString="<%# %>" <span lang="ja"> ~~~~ </span> </asp:SqlDataSource> 開発環境は 【Visual Studio 2008】 【言語:VB】 【グーグルマップを組み込む途中です】 初心者なので質問が雑になってしまっているかと思いますが、よろしくお願い致します。

  • テーブルの結合について

    テーブル結合に関するSQL文について質問させてもらいます。 DBはSQLServer2005です。 下記のような二つのテーブルがあります。 テーブルA コード A111 A111B A222 A333 テーブルB コード    数量  A111     1 A111B    2 A222     3 A222B    4 上記2つのテーブルから下記の結果を表示させたいのです。 コード    数量  A111     1 A111B    2 A222     7 A333     0 テーブルBのコードがテーブルAにある場合、そのまま数量を表示。 ない場合、コードの4桁目まででサマリした合計値を表示させたい。 LEFT JOIN等をいろいろためしてみたのですがうまくいきません。 おわかりの方、方教えてください。    

専門家に質問してみよう