2017-02-11 3 views
0

誰かが自分のプログラムに登録すると、自分のSQL ServerテーブルからIDを取得し、そのIDを+1して次のIDに登録する方法を教えてください。登録時にSQL Server IDを追加する

これは、これまでの私のコードです。 ??は、これがうまくいくかどうかわかりません。

SqlCommand hi = new SqlCommand("SELECT MAX(Id) FROM Table"); 
hi.CommandType = CommandType.Text; 
hi.Connection = connection; 
hi.Parameters.AddWithValue("@Id", ??); 

たとえば、最後のIDは14でした。誰かが登録していて、IDの下のSQL Serverテーブルに15と言って欲しいと思います。

+0

あなたのID列を[自動インクリメント列](https://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html)にしてみませんか? – Icemanind

答えて

2

完全なテーブル構造はわかりませんが、説明している機能はSQL Serverデータベースでネイティブに使用でき、IDという列です。あなたはそれを実装するような方法は、このようなものです:

CREATE TABLE MyTable 
(
    Id int not null identity(1,1), 
    Name nvarchar(255) not null 
    # other columns go here... 
) 

あなたは同上のカラムを使用アイデンティティを作るために、既存のテーブルを変更することができるはずです、唯一の難点は、あなただけのテーブルごとに1つのID列を持つことができます。私がお勧めし

INSERT INTO MyTable (Name) 
VALUES ('My Name') 
+0

[ID] INT UNSIGNED NOT NULL AUTO_INCREMENT、 - 「符号なし」付近の構文が正しくない –

+0

Microsoft SQL ServerではなくMySQLを使用していますか? –

+0

Microsoft SQL Serverを使用しています笑って、駄目だよ!タグで巨大な間違いを編集しよう! –

0

:あなたは、テーブルに新しいレコードを挿入したい場合は、SQL Serverが適切な値でそれを埋めるように、あなたは、あなたのINSERT文のうち、ID列を残すことができ

ID列を自動増分することでデータベースレベルで処理します。 コードから実行したい場合は、データを追加するために挿入呼び出しを行う前に、最後のIDを取得するためにデータベースにヒットしなければなりません。

関連する問題