私のクエリでは、ID設定が有効になっているため、主キーフィールドを使用しません。
string sql = @"
INSERT INTO [tblTemplates] (personID, hash, data)
VALUES (@personID, @hash, @data)";
cmd = new SqlCeCommand(sql, cn);
cmd.Parameters.AddWithValue("@personID", newTemplate.personID);
cmd.Parameters.AddWithValue("@hash", newTemplate.templateHash);
cmd.Parameters.AddWithValue("@data", newTemplate.templateData);
cmd.ExecuteNonQuery();
ランダムにレコードを挿入できる場合とできない場合があり、例外がスローされます。
重複する値を一意のインデックスに挿入することはできません。
[テーブル名=tblTemplates、制約名= PK_ tblTemplates _templateID]
これはテーブルスキーマです。
-- Script Date: 26.08.2011 10:37 - Generated by ExportSqlCe version 3.5.1.5
CREATE TABLE [tblTemplates] (
[templateID] int NOT NULL IDENTITY (1,1)
, [hash] nvarchar(100) NOT NULL
, [data] image NOT NULL
, [personID] int NOT NULL
);
GO
ALTER TABLE [tblTemplates] ADD CONSTRAINT [PK__tblTemplates__templateID] PRIMARY KEY ([templateID]);
GO
CREATE INDEX [IDX_tblTemplates_personID] ON [tblTemplates] ([personID] ASC);
GO
CREATE UNIQUE INDEX [UQ__tblTemplates__templateID] ON [tblTemplates] ([templateID] ASC);
GO
なぜこのエラーが発生するのですか?