[ad_1]
こんにちは、みんな、
誰かが私に次のことを手伝ってくれませんか?
少量の Web 開発の学習を開始するために、Visual Web Developer Express と Microsoft の StarterSite を使用しています。 これまで (SQL Server Compact を使用して) いくつかのテーブルのフィールドにデータを入力するための Web ページを取得する練習をしてきましたが、小さな障害に遭遇しました。
ボタンが付いた小さなページがあります。 ボタンをクリックすると、コードでテーブルのフィールドを調べて (フィールド “InvoiceNumber” を呼び出し、テーブル “InvoiceTable” を呼び出す)、最後に保存された数値を取得し、それを “1” ずつ増やしてから保存します。 「InvoiceTable」に戻り、ページに新しい請求書番号を表示します。
現在、このボタンは「新しい請求書」と呼ばれているため、このボタンをクリックすると、テーブル内の最新のものよりも新しい請求書が作成されます。
誰かが助けてくれたら、私は永遠に感謝します.
どうもありがとう
解決策 1
これは、ストアド プロシージャを使用して簡単に実行できます。
DECLARE @invnum INT;
SELECT @invnum = MAX(InvoiceNumber) FROM InvoiceTable
@invnum = @invnum + 1
INSERT INTO InvoiceTable (InvoiceNumber) VALUES (@invnum)
RETURN @invnum
using(SqlCommand cmd = new SqlCommand("proc name", conection)) { int invnum = (int)cmd.ExecuteScalar(); }
フィールドが数値の場合、自動付番フィールドを作成し、データベースが値をインクリメントできるようにすることで、同じ効果を得ることができます。
解決策 2
Yoy は、実際のデータベースでこれを行うことはありません。 複数のユーザーがまったく同じ操作を行うという問題があるため、これには AutoId 列の方が適しています。 両者がコードを実行して最後の番号を取得すると、それぞれが同じ結果を出し、同じ請求書番号を作成しようとします。 明らかに、これは非常に悪いことです。
解決策 3
私はあなたのアプローチを変えて、 IDENTITY
桁。 私はこれらの記事を読むだろう
[ad_2]
コメント