[英]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.