私は自分のプロジェクトにVisual Studio 2008、ASP.NET 3.5、C#を使用しています。私はデータベース接続のために3層アーキテクチャを使用しています。 ID、名前、年齢などのフォームを設計しました。データベーステーブルでは、idが主キーです。ページの読み込みでは、IDの次の値をテキストボックスに自動的に表示します。次に、ユーザーは名前、年齢などの他の詳細を入力する必要があります。その後、私はテーブルにデータを提出したい。いずれにせよ、これについての良い考えを示唆することができます。私は3層構造のものが初めてです。IDの自動インクリメントと3段アーキテクチャのテキストボックスに表示
答えて
max関数を使用してインクリメント列の最大値を取得できますが、複数の要求がある場合に問題が発生します。
このように、静的変数に値を1回格納し、その値を増やすことができます。
ただし、一部で一度送信をキャンセルすると問題が発生します。
データベースをチェックアウトする必要があり、正規の間隔で最大値をポーリングする必要があり、静的であるかどうかを確認し、それに応じて更新する必要があります。
基本的には、これをよりスムーズに行うためにアルゴリズムを定義する必要があります。
まず、あなたがあなたのデータベースからユーザーIDのために示すために、良いアイデアではありません1で、それをインクリメントし、テキストボックス
このようにして重大な問題を引き起こす可能性があります。 IDをロックする必要があります(空レコードを保存してIDを返すなど)。このようにすれば、IDを選択するだけではありません。間違いなく私はこれを信じています。 – stephenbayer
both.Butに私は3Tierアーキテクチャを使用していることが最も重要なことをありがとう。だからストアドプロシージャ、bal、dalなどにコードを書くときにとても気をつけたい – user793987
にこの値を設定し、id列
select max(id) from TableName
から最大値を取得します私たちがUI IDに暗号化する前にIDを送る必要がある場合は、セキュリティの観点から、 プロジェクトで。 あなたのケースでは、IDが自動的にSQLによって生成された場合、表示する必要はありません。 暗号化されていないIDを表示しないようにしてください。
これは非常に基本的なものですが、エンティティコードとデータベースレイヤーの接続コードを記述していて非常に共通していて、手動ですべてコーディングすると、エラーが発生しやすく時間がかかり、完全に不要になります。私は真剣に、nettiersフレームワークのようなものを使ってcodesmithのようなツールを使ってコード生成を提案します。
そして、実際にフォームにIDを表示する理由がわかりません。適切な方法は、フォームを使用してエンティティを塗りつぶし、次にデータレイヤを使用してそのエンティティを保存することです。 nettiersのようなフレームワークでは、新しいエンティティか、更新されたエンティティか、変更されたエンティティが追跡され、フレームワークは適切なデータベース呼び出しをすべて処理します。データベースからデータを読み込む必要がある場合を除いて、IDについて実際に知る必要はありません。しかし、データ層から返されたエンティティは、保存後に新しいIDがすでに設定されているはずです。
- 1. 自動インクリメントIDの
- 2. JsGrid - 自動インクリメントID
- 3. JavaのHibernate ID自動インクリメント
- 4. Alfrescoの自動インクリメント(ユニーク)ID
- 5. ASP.NET MVCの自動インクリメントID
- 6. SQLiteのIDを自動インクリメント
- 7. ウェブページの登録ごとに自動インクリメントID値を表示する方法は?
- 8. JAVASCRIPTの自動インクリメント量を表示
- 9. C#クラス自動インクリメントID
- 10. Entity Framework ID自動インクリメント
- 11. SQL - 自動インクリメントIDを
- 12. 自動インクリメントの "id"カラムの問題
- 13. MySQLテーブルの自動インクリメントIDの固定
- 14. コンストラクタのデータベースフラスコのPython3自動インクリメントID
- 15. 自動インクリメントで変数を表示
- 16. App Engineデータストア内の自動インクリメントID
- 17. コントローラ内の角度ID自動インクリメント
- 18. クラス間の自動インクリメントID - JAVA
- 19. 要素IDの自動インクリメント値
- 20. カスタムタイプの自動インクリメントIDコード番号
- 21. 自動インクリメントID列の挿入エラー
- 22. Realm、Swift 3.0の自動インクリメントID
- 23. 自動インクリメントIDの必要性
- 24. ユーザーIDとなり、主キーと自動インクリメント自己
- 25. App Engineデータストア:NDBでID自動インクリメント
- 26. 自動インクリメントIDをトランザクション内で予約
- 27. jdbcTemplate.update自動インクリメントされユニークなIDフィールド
- 28. mysqlの自動インクリメントIDと結合フィールドのプライマリキー
- 29. LINQと自動インクリメント
- 30. Hibernateは自動インクリメントのIDと複合キー
良い答え...... –
私は別の同様の答えのコメントで述べたように、このようなことをするだけで問題を懇願しています。あなたは答えの中でそれに対処しましたが、実際にはシステムのユーザがレコードのIDを見る必要が全くないので、新しいレコードを保存する理由はありません。それは、ユーザーがフォームからIDを設定する本当に良い理由がない限り、避けるべき恐ろしい考えです。私は正当な理由は考えられません。 – stephenbayer