我是一名初级程序员(高中生),我的老师给我一个任务,让 sqlce
表中的主键在每次我向数据库中插入新行时自动递增(我认为他也不知道该怎么做 :)
这是我当前的代码:
using (SqlCeConnection con = new SqlCeConnection(conString))
{
con.Open();
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO Occupational VALUES(@employedBeforeBool, @nameofEmployer, @Addressemployed,@specificsAtEmployer,@employmentOnDischarge, @yearsExperienceWithEmployer, @desireToReturnToEmployer, @farmingExperienceBool, @tradesorapprentiship, @whattradesorapprentiship, @SoldierID, @Occupational_ID)", con))
{
com.CommandText = "SET IDENTITY_INSERT Occupational ON";
com.Parameters.AddWithValue("@employedBeforeBool", Soldier1.employedBeforeBool);
com.Parameters.AddWithValue("@nameofEmployer", Soldier1.nameOfEmployer);
com.Parameters.AddWithValue("@Addressemployed", Soldier1.addressOfEmployer);
com.Parameters.AddWithValue("@specificsAtEmployer", Soldier1.specificsAtEmployer);
com.Parameters.AddWithValue("@employmentOnDischarge", Soldier1.employmentOnDischarge);
com.Parameters.AddWithValue("@yearsExperienceWithEmployer", Soldier1.yearsExperienceWithEmployer);
com.Parameters.AddWithValue("@desireToReturnToEmployer", Soldier1.desireToReturnToEmployer);
com.Parameters.AddWithValue("@farmingExperienceBool", Soldier1.farmingExperienceBool);
com.Parameters.AddWithValue("@tradesorapprentiship", Soldier1.tradeOrApprenticeship);
com.Parameters.AddWithValue("@whattradesorapprentiship", Soldier1.whattradesorapprentiship);
com.Parameters.AddWithValue("@SoldierID", SoldierID);
//com.Parameters.AddWithValue("@Occupational_ID", counter);
com.ExecuteNonQuery();
}
我的程序在运行时没有崩溃,看起来它正在插入,但表内没有显示任何内容。
最佳答案
您当前的代码用 SET IDENTITY
文本覆盖了 INSERT INTO
查询。只有 1 个 CommandText 属性。
并且在创建表时使列自动递增,您在插入期间不必执行任何操作。
如果您使用设计器创建表,请返回并将键列的 IDENTITY
属性设置为 true。
关于c# - 将sqlce表中的标识设置为自动递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13273466/