簡體   English   中英

無法使用自動增量插入到SQL Server CE

[英]Cannot insert to SQL Server CE with autoincrement

由於自動增量列,我無法將新行插入SQL Server CE 3.5表

我的架構很簡單:

@"CREATE TABLE DataTable ("Foo_ID int PRIMARY KEY IDENTITY, " +
                          "FooName NVARCHAR(200) NOT NULL)

我在C#中的insert語句

SqlCeCommand cmd = new SqlCeCommand(@"INSERT INTO DataTable VALUES(@Foo_ID, @FooName)", con))
conn.Open();
cmd.Parameters.Add(new SqlCeParameter("FooName", "test123"));
cmd.ExecuteNonQuery();

然后我得到錯誤:

System.IndexOutOfRangeException:此SqlCeParameterCollection不包含具有ParameterName'Foo_ID'的SqlCeParameter

由於列FOO_ID是自動遞增IDENTITY列,因此必須從INSERT語句中省略它。 因此,您需要顯式指定要插入值的列的列表 - 試試這個:

SqlCeCommand cmd = new SqlCeCommand(@"INSERT INTO DataTable(FooName) VALUES(@FooName)", con))
conn.Open();
cmd.Parameters.Add(new SqlCeParameter("FooName", "test123"));
cmd.ExecuteNonQuery();

問題是你的參數中有@Foo_ID作為查詢,但不要在cmd.Parameters.Add添加這樣的參數。

嘗試發送-1作為ID,這樣會強制自動增量設置正確的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM