Visual Studio 2008でWebサイト作成に関する質問です。
DetailsViewコントロールでレコード挿入をおこなった場合、
挿入直後に表示される画面は、挿入レコードではなく、
挿入作業の前に表示していた既存レコードになってしまいます。
Webのユーザ(一般人)から見たら、新規作成で送信したはずの
情報がすぐ表れるのが自然であり、そうではない情報が出てくるのは心外かと思います。
DetailsViewコントロールで挿入確認ボタンを押したら、挿入レコードをすぐ表示する方法はないでしょうか。
No.2ベストアンサー
- 回答日時:
>参考URL見ました。
けっこう複雑なんですね。このレベル程度では、まだまだ序の口な方ですよ。
これが、AjaxやASP.NET MVC, LINQやJQueryなんかが絡んでくると
もっともっと頭が痛いくらい複雑になります。
今回のケースはそれらを使っていない分、まだ良い方です。
ASP.NET標準のコントロールだけの動きのみではできないことの方が圧倒的に多いので、それらはすべてコードを書いて自力で作ることになります。今回のケースだとまだコード量は少ない方だと思います。
>そのURLに説明されているように、私も自作テーブルにおいて、自動採番形式を用いています。
>しかし、もしコード例を出してもらえるようなら出してもらえればたいへんありがたいです。
ということで、下記のサイトをご覧ください。
DetailsViewで作成したレコードを作成直後に表示する方法~主キーがIDENTITY項目の場合~
http://techbank.jp/Community/blogs/mymio/archive …
ただし、DBは、SQL Serverを前提としていますので、もし、OracleやAccessなど、他のDBを使われている場合は、またやり方が違います。
しかし、ある程度、この応用でいけるはずなので、後は自分で調べながらやって頂ければと思いますが、どうしてもわからなければ相談に乗りますので、またご連絡ください。
参考URL:http://techbank.jp/Community/blogs/mymio/archive …
まず当方の環境を明記していませんでした。DBはSQL Server を用いています。
そのためkero_mioさんのサイトの方法はそのままで十分役立つものでした。ありがとうございます。
それからこれも後付けの情報になりますが、当方のDetailsViewページの表示は、
GridViewを用いる別ページ(別aspxファイル)からの遷移によって表示されることを想定しており、
DetailsViewにはページングを付加せず、単一レコードの表示や挿入としました。
そのため挿入後、別レコードが表示されるのはかなり奇異に感じられるものだった訳です。
いただいた回答のおかげで基本的考えはkero_mioさんの説明の通りでかつもう少し簡単な書き方にしました。
以下は自分への備忘録。
.aspxのキモ部分
<asp:TextBox ID="TextBox1" .略.
<asp:DetailsView ID="DetailsView1".略.>
<Fields>
.略.
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource1"
DeleteCommand= .略.
InsertCommand="INSERT INTO [Zaiko] (.略.) VALUES (.略.) SELECT @No = SCOPE_IDENTITY()"
SelectCommand="SELECT .略. FROM [Zaiko] WHERE ([id] = @id)"
UpdateCommand= .略.
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="id"
PropertyName="Text" Type="Int32" DefaultValue="2" />
</SelectParameters>
<DeleteParameters>と <UpdateParameters>は.略.
<InsertParameters>
.略.
<asp:Parameter Name="No" DbType="Int32" Direction="Output" />
</InsertParameters>
</asp:SqlDataSource>
.aspx.vbのほぼ全て
Imports System.Collections.Generic
Imports System.Web.UI.WebControls
Imports System.Data.Common
Partial Class Default22
Inherits System.Web.UI.Page
Protected Sub SqlDataSource1_Inserted(.略.).略.
TextBox1.Text = command.Parameters("@No").Value.ToString()
End Sub
End Class
No.1
- 回答日時:
確かに、新規作成した直後のレコードをデフォルトで表示して欲しいですよね。
お気持ちはよくわかります。さて、挿入した直後に挿入したレコードを表示するには、
ある程度、コードを書かないとできません。
下記、参考のサイトが参考になりますでしょうか?
http://techbank.jp/Community/blogs/mymio/archive …
宜しくお願いします。
参考URL:http://techbank.jp/Community/blogs/mymio/archive …
kero_mioさん、またしても有益な回答ありがとうございます。
参考URL見ました。けっこう複雑なんですね。
私にはかなりハードルが高い内容で、読解するのにしばらく時間がかかりそうですが、挑戦してみます。
そのURLに説明されているように、私も自作テーブルにおいて、自動採番形式を用いています。自動採番の最新値を用いてそのレコードを表示できればより汎用性が高くてすっきりするようにも思います。
それについても、時間が掛かるかもしれませんが、挑戦してみます。
しかし、もしコード例を出してもらえるようなら出してもらえればたいへんありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- 格安スマホ・SIMフリースマホ Xiaomi 12Tでau回線のVOLTEが解放できません 7 2022/10/28 17:42
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- その他(パソコン・周辺機器) pcの周辺機器について 6 2022/10/10 13:54
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) スレッド化されたコメントとは? 2 2022/12/15 06:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
JSPのNULLレコード表示について...
-
アクセスでレポートの1印刷内...
-
ヘッダレコードとトレーラレコ...
-
差し込み印刷のレコード数について
-
DataGridViewの、選択されてい...
-
サブレンジ分割されたNDB(富士...
-
ファイル書込みで一行もしくは...
-
Access でレコードセレクタが押...
-
ワードの差込印刷で教えて下さ...
-
カレントレコードが無い事を判...
-
DataGridViewにてセル以外をク...
-
データセットのレコード更新が...
-
ACCESSで「16389予約済みエラー...
-
【ExcelVBA】Powerクエリーでい...
-
VBAで制御コード付きテキストフ...
-
ACCESS2000 SQL 最大レコード数
-
AccessVBAのMoveメソッドにつき...
-
Line Inputで文字化け(助けて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
DataGridViewの、選択されてい...
-
カレントレコードが無い事を判...
-
DataGridViewの内容をDBに反映...
-
Access を×ボタンで閉じ...
-
アクセスでレポートの1印刷内...
-
ヘッダレコードとトレーラレコ...
-
Access でレコードセレクタが押...
-
レコードセット(ADO.Recordset)...
-
ACCESSで大量の更新を行うと「...
-
差し込み印刷のレコード数について
-
DataGridViewにてセル以外をク...
-
サブレンジ分割されたNDB(富士...
-
Line Inputで文字化け(助けて...
-
固有レコード識別子の選択とは
-
[VBA] ADOの Clone と AddNew
-
ワードの差込印刷で教えて下さ...
おすすめ情報