2016-06-30 5 views
3

私は、預金、引き出し、お金の振り込みをシミュレートできる簡単な預金口座アプリケーションを開発しています。私はクリックすることができ、データは自分のデータベースに記録される "Deposit"というボタンがあります。私はSQLパラメータを使用していますそのINSERT文を作成し、これはコードであるためにSQLパラメータを使用した値の挿入

SqlCon = New SqlConnection 
    SqlCon.ConnectionString = "............" 
    Try 
     Query = "INSERT INTO Transacoes(tpAccount, dateTransaction, descrTransaction, amoutTransaction, balanceTransaction) 
       VALUES(@tpAccount, @dateTransaction, @ddescrTransaction, @amoutTransaction, @balanceTransaction)" 

     SqlCon.Open() 
     SqlCmd = New SqlCommand(Query, SqlCon) 

     With SqlCmd.Parameters 
      .Add("@tpAccount", SqlDbType.Char).Value = cbTipoConta.Text 
      .Add("@dateTransaction", SqlDbType.DateTime).Value = txtDate.Text 
      .Add("@descrTransaction", SqlDbType.Char).Value = cmdDepositar.Text 
      .Add("@amoutTransaction", SqlDbType.Int).Value = txtDeposito.Text 
      .Add("@balanceTransaction", SqlDbType.Int).Value = txtBalance.Text 
     End With 

     SqlCmd.ExecuteNonQuery() 
     SqlCon.Close() 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 

この表では、私は、「ID」欄があるが、私はそれをSQLパラメータに表示したくないと

Cannot insert the value NULL into column 'Id'`.

私はIDをオートインクリメントする必要がありますが、これは正常に動作しますか?またはこれを解決する最良の方法は何ですか?

+0

はいID列を自動インクリメントとして作成する必要があります –

+0

ありがとうございます。ほとんど忘れてしまった@JaydipJ –

答えて

1

、私はいつもそれが現時点で必要とされていなくてもIdentity(1,1)でID列を使用しています。特定の行をすばやく選択してIDが自動インクリメントされている場合は、条件が1つしかないことが常にあります。

0

IDは、この場合の唯一の解決策ではありません。もう1つは、という名前です。 は、あなたのケースでは、あなたは単にあなたが順序を持っている場合は、あなたがのためにdefalut値として使用することができますhere

を見つけることができます

create sequence dbo.id_sequence as int 
start with 0 
increment by 1; 

詳細情報についてシーケンスの作成この例のように新しいシーケンスを作成することができますテーブル内のどの列でも、ポイントのDhereの例で見ることができます。必要に応じて、複数の列を使用してテーブル内の複数の列を操作することもできます。

identintyとsequenceの違いは、1つの列(シーケンスまたは1つのテーブルの多くの列で行うことができるシーケンス)でのみIDを使用でき、セットIDでテーブルを再作成する必要があることです。この場合は許可されません)、またはIDを指定して列を削除し、新しい列を作成します(また、削除された列との制約と関係を意識する必要があります)。シーケンスを使用すると、必要なカラムを使用していつでもテーブルを変更できます。

シーケンスでは、列に値を挿入することはできません(アイデンティティではできません)。この部分をシミュレーションして元のIDを使用することをお勧めします(あなたがもちろんそれを必要とするならば)アイデンティティによって作られたものの代わりに。

関連する問題