0

他のテーブルと同じ制限で挿入されたIDをインクリメントしたいだけです

私はそれで問題ありません

唯一の問題は、制限までidでコードをインクリメントできないことです

id列2

1 -----------0

2-----------5

3-----------0

など、このように、挿入ボタンをクリックすると、IDは制限まで1つずつ増加する必要があります

誰か助けてくれませんか

    RecordDate.Text = MyFormat

    Dim antinull As Integer = Format(0)
    BadBeg.Text = antinull
    WarePcs.Text = antinull
    CustPcs.Text = antinull
    Returned.Text = antinull
    BadEnd.Text = antinull

   Try
        Str = "insert into BadWarehouseInv values("
        Str += Id.Text.Trim()
        Str += ","
        Str += """" & RecordDate.Text.Trim() & """"
        Str += ","
        Str += """" & BadBeg.Text.Trim() & """"
        Str += ","
        Str += WarePcs.Text.Trim()
        Str += ","
        Str += CustPcs.Text.Trim()
        Str += ","
        Str += Returned.Text.Trim()
        Str += ","
        Str += """" & BadEnd.Text.Trim() & """"
        Str += ")"
        Con.Open()
        Cmd = New OleDbCommand(Str, Con)
        Cmd.ExecuteNonQuery()
        Dst.Clear()
        Dad = New OleDbDataAdapter("SELECT * FROM BadWarehouseInv ORDER BY Id", Con)
        Dad.Fill(Dst, "stock")

        Con.Close()
    Catch ex As Exception
        MessageBox.Show("Could Not Insert Record!!!")
        MsgBox(ex.Message & " -  " & ex.Source)
        Con.Close()
4

1 に答える 1

0

私はあなたの質問を理解しているかどうかわかりませんが、:-

通常、データベースに書き込む場合、Identity 型であり、テーブルまたはPrimary Keyの一意の識別子である列が 1 つあります。これは、新しい行が追加されると自動的に増加します。

したがって、テーブルに新しい行を作成するときは、データベース エンジンにこれを心配させ、テクニックを使用してこの値を読み戻します。

ID 列を使用したくない場合は、クエリを使用して現在の最大数を検索し、それに 1 を追加できます。これは、2 つのクライアントが同時にこれを実行している可能性があり、データベースに書き込もうとすると 1 つが失敗する可能性があるため、お勧めできません。

于 2013-03-22T10:29:47.667 に答える