C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.53815 の関連記事表示

<< 0 >>
■53815  DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/27(Mon) 20:34:54)

    分類:[ASP.NET (C#)] 

    C# 3.0開発となります。

    一つ質問させていただいておりますが、別質問としてもう一つさせてください。

    TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    どうかいたらいいのでしょうか

    よろしくお願いいたします。
親記事 /過去ログ90より / 関連記事表示
削除チェック/

■53819  Re[1]: DataTableの主キー更新
□投稿者/ すなふきぬ -(2010/09/27(Mon) 23:45:53)
    No53815 (逃亡者 さん) に返信
    > C# 3.0開発となります。
    >
    > 一つ質問させていただいておりますが、別質問としてもう一つさせてください。
    >
    > TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    > どうかいたらいいのでしょうか

    VS2008の場合は、以下の手順でTableAdapterを作成します。

    1.ソリューションエクスプローラーでDataSetを開く
    2.ツールボックスからTableAdapterをDataSetデザイナにドラッグする
    3.TableAdapter構成ウィザードで、「SQLステートメントを使用する」を選択する
    4.Where句を含むSQLを作成し、TableAdapterを完成させる

    この手順で作成したTableAdapterならWhere句を考慮した更新ができます。
    慣れてくるとデザイナを使用せず、手書きとかで作成するのも有りです。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53821  Re[2]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/28(Tue) 00:04:36)
    No53819 (すなふきぬ さん) に返信
    > ■No53815 (逃亡者 さん) に返信
    >>C# 3.0開発となります。
    >>
    >>一つ質問させていただいておりますが、別質問としてもう一つさせてください。
    >>
    >>TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    >>どうかいたらいいのでしょうか
    >
    > VS2008の場合は、以下の手順でTableAdapterを作成します。
    >
    > 1.ソリューションエクスプローラーでDataSetを開く
    > 2.ツールボックスからTableAdapterをDataSetデザイナにドラッグする
    > 3.TableAdapter構成ウィザードで、「SQLステートメントを使用する」を選択する
    > 4.Where句を含むSQLを作成し、TableAdapterを完成させる
    >
    > この手順で作成したTableAdapterならWhere句を考慮した更新ができます。
    > 慣れてくるとデザイナを使用せず、手書きとかで作成するのも有りです。

    ご回答ありがとうございます。
    Where句を考慮したというのは、これはどういう風につかえるのでしょうか。
    DataAdapter.Fill(ds)とやるのでしょうか
    Where句の条件はどこでしていすればいいのでしょうか
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53822  Re[3]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/28(Tue) 00:06:29)
    No53821 (逃亡者 さん) に返信
    > ■No53819 (すなふきぬ さん) に返信
    >>■No53815 (逃亡者 さん) に返信
    > >>C# 3.0開発となります。
    > >>
    > >>一つ質問させていただいておりますが、別質問としてもう一つさせてください。
    > >>
    > >>TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    > >>どうかいたらいいのでしょうか
    >>
    >>VS2008の場合は、以下の手順でTableAdapterを作成します。
    >>
    >>1.ソリューションエクスプローラーでDataSetを開く
    >>2.ツールボックスからTableAdapterをDataSetデザイナにドラッグする
    >>3.TableAdapter構成ウィザードで、「SQLステートメントを使用する」を選択する
    >>4.Where句を含むSQLを作成し、TableAdapterを完成させる
    >>
    >>この手順で作成したTableAdapterならWhere句を考慮した更新ができます。
    >>慣れてくるとデザイナを使用せず、手書きとかで作成するのも有りです。
    >
    > ご回答ありがとうございます。
    > Where句を考慮したというのは、これはどういう風につかえるのでしょうか。
    > DataAdapter.Fill(ds)とやるのでしょうか
    > Where句の条件はどこでしていすればいいのでしょうか
    >

    なにもしてないFillをみるとWhere句がないのでそこにWhere句を入れるというのは
    わかりましたが、どうやってそれにWhere句の条件をしていするのかがわかりません
    よろしくお願いします
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53825  Re[4]: DataTableの主キー更新
□投稿者/ すなふきぬ -(2010/09/28(Tue) 00:40:28)
    No53822 (逃亡者 さん) に返信
    > ■No53821 (逃亡者 さん) に返信
    >>■No53819 (すなふきぬ さん) に返信
    > >>■No53815 (逃亡者 さん) に返信
    >>>>C# 3.0開発となります。
    >>ご回答ありがとうございます。
    >>Where句を考慮したというのは、これはどういう風につかえるのでしょうか。
    >>DataAdapter.Fill(ds)とやるのでしょうか
    >>Where句の条件はどこでしていすればいいのでしょうか

    書き方がマズかったかな。Where句を考慮は、「Where句を指定した更新」と考えてもらえばいいと思います。

    > なにもしてないFillをみるとWhere句がないのでそこにWhere句を入れるというのは
    > わかりましたが、どうやってそれにWhere句の条件をしていするのかがわかりません
    > よろしくお願いします

    前述したデザイナから、TableAdapterを作成する方法を試されてみましたか?
    3.の「SQLステートメントを使用する」を選択した後に、「SQLステートメントの入力」画面が出ると思います。この画面で、SQLを直接入力するか、クエリビルダを使用してSELECTステートメントを作成します。

    記入例)HOGEテーブルにID(主キー)列とNM列がある場合

    SELECT ID, NM
    FROM HOGE
    WHERE (ID = @ID)

    このような感じでSELECTステートメントを作成します。上記の画面で「詳細オプション」ボタンをクリックすると、「INSERT、UPDATE、およびDELETEステートメントの生成」にチェックされていれば、更新用のステートメントは自動作成されます。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53830  Re[5]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/28(Tue) 08:06:23)
    No53825 (すなふきぬ さん) に返信
    > ■No53822 (逃亡者 さん) に返信
    >>■No53821 (逃亡者 さん) に返信
    > >>■No53819 (すなふきぬ さん) に返信
    >>>>■No53815 (逃亡者 さん) に返信
    > >>>>C# 3.0開発となります。
    > >>ご回答ありがとうございます。
    > >>Where句を考慮したというのは、これはどういう風につかえるのでしょうか。
    > >>DataAdapter.Fill(ds)とやるのでしょうか
    > >>Where句の条件はどこでしていすればいいのでしょうか
    >
    > 書き方がマズかったかな。Where句を考慮は、「Where句を指定した更新」と考えてもらえばいいと思います。
    >
    >>なにもしてないFillをみるとWhere句がないのでそこにWhere句を入れるというのは
    >>わかりましたが、どうやってそれにWhere句の条件をしていするのかがわかりません
    >>よろしくお願いします
    >
    > 前述したデザイナから、TableAdapterを作成する方法を試されてみましたか?
    > 3.の「SQLステートメントを使用する」を選択した後に、「SQLステートメントの入力」画面が出ると思います。この画面で、SQLを直接入力するか、クエリビルダを使用してSELECTステートメントを作成します。
    >
    > 記入例)HOGEテーブルにID(主キー)列とNM列がある場合
    >
    > SELECT ID, NM
    > FROM HOGE
    > WHERE (ID = @ID)
    >
    > このような感じでSELECTステートメントを作成します。上記の画面で「詳細オプション」ボタンをクリックすると、「INSERT、UPDATE、およびDELETEステートメントの生成」にチェックされていれば、更新用のステートメントは自動作成されます。

    ためしに作って、言われている通りになりましたが、まずFillでレコードを取得する方法としてWhere句で絞り込んだものを
    Fillする方法がわかりませんでした。
    TableAdapter(dt)などではWhere句の引数を指定できないので、どのように指定するのかがまず知りたいです。
    よろしくお願いします。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53833  Re[6]: DataTableの主キー更新
□投稿者/ すなふきぬ -(2010/09/28(Tue) 08:55:37)
    No53830 (逃亡者 さん) に返信
    > ためしに作って、言われている通りになりましたが、まずFillでレコードを取得する方法としてWhere句で絞り込んだものを
    > Fillする方法がわかりませんでした。
    > TableAdapter(dt)などではWhere句の引数を指定できないので、どのように指定するのかがまず知りたいです。
    > よろしくお願いします。

    昨日書いておいたように作れば、Fillメソッドの第二引数移行に、Where句で指定した条件を指定可能です。
    ADOのデザイナはIDEの環境等でも変わるので、Visual Studioのバージョン等も書いた方が適切な回答が得られると思います。
    もし、ADOの知識があまりないのであれば、まず基礎から練習する方が早く理解できるかもしれません。

    http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_03/vsdbprog_03_01.html
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53836  Re[6]: DataTableの主キー更新
□投稿者/ 魔界の仮面弁士 -(2010/09/28(Tue) 09:44:57)
    No53830 (逃亡者 さん) に返信
    >>SELECT ID, NM
    >>FROM HOGE
    >>WHERE (ID = @ID)
    > ためしに作って、言われている通りになりましたが、まずFillでレコードを取得する方法としてWhere句で絞り込んだものを
    > Fillする方法がわかりませんでした。
    > TableAdapter(dt)などではWhere句の引数を指定できないので、どのように指定するのかがまず知りたいです。
    
    TableAdapter の作り方にもよりますが、元の SQL に WHERE が無い場合は、
    
     var ds = new HogeDataSet();
     using ( var adp = new 何某.HogeTableAdapter() )
     {
      adp.Fill(ds.Hoge);
     }
    
    という感じで、WHERE をつけていた場合は、
    
     var ds = new HogeDataSet();
     using ( var adp = new 何某.HogeTableAdapter() )
     {
      adp.Fill(ds.Hoge, 値1, 値2);
     }
    
    という感じです。引数の数やメソッド名(Fill/GetData)などは、
    デザイナへの設定次第で変わることもありますけれども。
    
    
    
    ■No53833 (すなふきぬ さん) に返信
    > ADOのデザイナはIDEの環境等でも変わるので、Visual Studioのバージョン等も書いた方が適切な回答が得られると思います。
    ADO ではなく、ADO.NET ですよね?
    http://msdn.microsoft.com/ja-jp/library/ms973217.aspx
    (いちおう、ADO 用の DataEnvironment デザイナという物も存在はしていますが…)
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53878  Re[7]: DataTableの主キー更新
□投稿者/ すなふきぬ -(2010/09/28(Tue) 23:22:05)
    No53836 (魔界の仮面弁士 さん) に返信
    > ■No53830 (逃亡者 さん) に返信
    > ■No53833 (すなふきぬ さん) に返信
    >>ADOのデザイナはIDEの環境等でも変わるので、Visual Studioのバージョン等も書いた方が適切な回答が得られると思います。
    > ADO ではなく、ADO.NET ですよね?
    > http://msdn.microsoft.com/ja-jp/library/ms973217.aspx
    > (いちおう、ADO 用の DataEnvironment デザイナという物も存在はしていますが…)

    えぇ、ADO.NETでしたね。つい、ADOと言ってしまうんですよ。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53907  Re[8]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/29(Wed) 21:20:00)
    No53878 (すなふきぬ さん) に返信
    > ■No53836 (魔界の仮面弁士 さん) に返信
    >>■No53830 (逃亡者 さん) に返信
    >>■No53833 (すなふきぬ さん) に返信
    > >>ADOのデザイナはIDEの環境等でも変わるので、Visual Studioのバージョン等も書いた方が適切な回答が得られると思います。
    >>ADO ではなく、ADO.NET ですよね?
    >>http://msdn.microsoft.com/ja-jp/library/ms973217.aspx
    >>(いちおう、ADO 用の DataEnvironment デザイナという物も存在はしていますが…)
    >
    > えぇ、ADO.NETでしたね。つい、ADOと言ってしまうんですよ。

    いろいろとありがとうございます。
    べんきょうします
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53905  Re[7]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/29(Wed) 21:16:02)
    ありがとうございます。
    そういうことですか。理解できました。ありがとうございます。
    無事に解決しました。

    No53836 (魔界の仮面弁士 さん) に返信
    > ■No53830 (逃亡者 さん) に返信
    > >>SELECT ID, NM
    > >>FROM HOGE
    > >>WHERE (ID = @ID)
    >>ためしに作って、言われている通りになりましたが、まずFillでレコードを取得する方法としてWhere句で絞り込んだものを
    >>Fillする方法がわかりませんでした。
    >>TableAdapter(dt)などではWhere句の引数を指定できないので、どのように指定するのかがまず知りたいです。
    >
    > TableAdapter の作り方にもよりますが、元の SQL に WHERE が無い場合は、
    >
    >  var ds = new HogeDataSet();
    >  using ( var adp = new 何某.HogeTableAdapter() )
    >  {
    >   adp.Fill(ds.Hoge);
    >  }
    >
    > という感じで、WHERE をつけていた場合は、
    >
    >  var ds = new HogeDataSet();
    >  using ( var adp = new 何某.HogeTableAdapter() )
    >  {
    >   adp.Fill(ds.Hoge, 値1, 値2);
    >  }
    >
    > という感じです。引数の数やメソッド名(Fill/GetData)などは、
    > デザイナへの設定次第で変わることもありますけれども。
    >
    >
    >
    > ■No53833 (すなふきぬ さん) に返信
    >>ADOのデザイナはIDEの環境等でも変わるので、Visual Studioのバージョン等も書いた方が適切な回答が得られると思います。
    > ADO ではなく、ADO.NET ですよね?
    > http://msdn.microsoft.com/ja-jp/library/ms973217.aspx
    > (いちおう、ADO 用の DataEnvironment デザイナという物も存在はしていますが…)
記事No.53815 のレス / END /過去ログ90より / 関連記事表示
削除チェック/

■53828  Re[1]: DataTableの主キー更新
□投稿者/ shu -(2010/09/28(Tue) 06:15:07)
    No53815 (逃亡者 さん) に返信
    > C# 3.0開発となります。
    >
    > 一つ質問させていただいておりますが、別質問としてもう一つさせてください。
    >
    > TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    > どうかいたらいいのでしょうか
    >
    > よろしくお願いいたします。

    DataTable tbl = new DataTable;
    DataAdapter da = 〜;

    da.Fill(tbl);

    DataRow rows[] = tbl.Select(@"<Key項目> = <値>");   項目が2つなら <Key項目1> = <値1> and <Key項目2> = <値2>
    DataRow row = rows[0];

    このrowが目的のレコードです。

    DB更新するならrowを編集して、da.Updateです。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53829  Re[2]: DataTableの主キー更新
□投稿者/ 逃亡者 -(2010/09/28(Tue) 08:01:51)
    No53828 (shu さん) に返信
    > ■No53815 (逃亡者 さん) に返信
    >>C# 3.0開発となります。
    >>
    >>一つ質問させていただいておりますが、別質問としてもう一つさせてください。
    >>
    >>TableAdapterでFillしたものから主キーになるものでWhere句を指定して1レコードをDataTableの中を更新したいんですけど、
    >>どうかいたらいいのでしょうか
    >>
    >>よろしくお願いいたします。
    >
    > DataTable tbl = new DataTable;
    > DataAdapter da = 〜;
    >
    > da.Fill(tbl);
    >
    > DataRow rows[] = tbl.Select(@"<Key項目> = <値>");   項目が2つなら <Key項目1> = <値1> and <Key項目2> = <値2>
    > DataRow row = rows[0];
    >
    > このrowが目的のレコードです。
    >
    > DB更新するならrowを編集して、da.Updateです。


    このやり方ですと、いったん全レコード取得しているので、できたら
    Fillする段階でWhereされたあとのものがほしいです。
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53831  Re[3]: DataTableの主キー更新
□投稿者/ shu -(2010/09/28(Tue) 08:10:49)
    No53829 (逃亡者 さん) に返信
    >
    >
    > このやり方ですと、いったん全レコード取得しているので、できたら
    > Fillする段階でWhereされたあとのものがほしいです。
    daに渡すSQL文で取得するレコードの条件はなんとでもなります。
    DBからの取得はすなふきぬさんが記述しているので取得したデータのDataTable内の編集に
    ついてのコメです。

記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53832  Re[1]: DataTableの主キー更新
□投稿者/ ミラ -(2010/09/28(Tue) 08:33:33)
    2010/09/28(Tue) 08:40:55 編集(投稿者)
    2010/09/28(Tue) 08:40:49 編集(投稿者)

    削除
記事No.53815 のレス /過去ログ90より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -