私は自分のプロジェクトに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. JavaのHibernate ID自動インクリメント
- 3. ウェブページの登録ごとに自動インクリメントID値を表示する方法は?
- 4. C#クラス自動インクリメントID
- 5. Entity Framework ID自動インクリメント
- 6. 自動インクリメントで変数を表示
- 7. 自動インクリメントの "id"カラムの問題
- 8. MySQLテーブルの自動インクリメントIDの固定
- 9. App Engineデータストア内の自動インクリメントID
- 10. カスタムタイプの自動インクリメントIDコード番号
- 11. 自動インクリメントIDの必要性
- 12. 自動インクリメントIDをトランザクション内で予約
- 13. App Engineデータストア:NDBでID自動インクリメント
- 14. 3列レイアウト自動中段幅
- 15. カウンタの自動インクリメント値を表示する
- 16. Oracleの自動インクリメント
- 17. jQueryの自動インクリメント(」「)
- 18. のOracle自動インクリメント
- 19. mysql自動インクリメントなしインクリメント
- 20. DynamoDB自動インクリメントIDとサーバー時間(iOS SDK)
- 21. Derby自動インクリメントとEclipselink UnitOfWork
- 22. JavaでのSQL挿入後の自動インクリメントIDフィールドへのアクセス
- 23. 自動インクリメントC#
- 24. 自動インクリメント
- 25. モンゴース自動インクリメント
- 26. 自動インクリメント
- 27. Sqliteの更新と自動インクリメントの値
- 28. h2の自動インクリメントのリセット
- 29. 範囲内の自動インクリメントURL ID番号
- 30. mysql IDの自動インクリメントが0から始まらない
良い答え...... –
私は別の同様の答えのコメントで述べたように、このようなことをするだけで問題を懇願しています。あなたは答えの中でそれに対処しましたが、実際にはシステムのユーザがレコードのIDを見る必要が全くないので、新しいレコードを保存する理由はありません。それは、ユーザーがフォームからIDを設定する本当に良い理由がない限り、避けるべき恐ろしい考えです。私は正当な理由は考えられません。 – stephenbayer