2017-05-28 22 views
-2

次のスクリプトを実行すると、以下のエラーが発生します。IDENTITY_INSERTがOFFに設定されている場合、 'data_siswa'テーブルのID列に明示的な値を挿入できません

private void tambahsiswa() 
    { 
     koneksi.Open(); 
     cmd = new SqlCommand("insert into data_siswa (nis,nama,kelas,ttl,jenkel,agama,alamat) values ('" + tNis.Text + "','" + tNama.Text + "','" + tKelas.Text + "','" + tTtl.Text + "','" + tJenkel.Text + "','" + tAgama.Text + "','" + rtAlamat.Text + "')", koneksi); 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show("Siswa Telah Di Tambahkan", "Informasi", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
+1

** SQLインジェクションアラート!** http://bobby-tables.comを参照してください。これ以外にも、デバッグを試しましたか?どのようなエラーが表示されますか?あまり役に立ちません。 –

+0

列の1つがID列として作成されます。この列を挿入ステートメントから削除するか、列を通常の(同一でない)列に変更する必要があります。 – EventHorizon

+0

テーブルのインデックスを確認するdata_siswa - プライマリキーが見つかります。挿入スクリプトの冒頭でコマンドを発行しない限り、この主キー列に挿入することはできません。 'set identity_insert data_siswa ON' –

答えて

0

エラーは、テーブルの主キーに値を挿入しようとしているために発生します。

主キーの自動更新用に定義されたシーケンスがあり、そのテーブルにリンクされている場合は、挿入クエリのID列は指定しません。

また、ストアドプロシージャを使用してidentity_insertパラメータをオンにすることもできます。

... 
SET IDENTITY_INSERT data_siswa ON 
* Your insert query * 
SET IDENTITY_INSERT data_siswa OFF 
... 
関連する問題