将数据插入SQL Server - 自定义ID

时间:2016-05-11 09:59:07

标签: c# sql-server

我从Access表导入。该表是Category表,例如: - 长度 - 地区......等等。

来自访问的那个表还有一个ID字段,有时可以是1,2,3,4,5,或者有时是1,3,4,5 ......任何组合。

我需要将这些值插入到服务器表中我自己的ID字段中。因此我尝试使用身份插入。使用此代码:

using (var transaction = new TransactionScope())
{
    dbContext.ExecuteCommand("TRUNCATE TABLE tbl_unitCat");

    dbContext.ExecuteCommand("SET IDENTITY_INSERT tbl_unitCat ON");

    foreach (DataRow row in table.Rows)//Rows coming from Access
    {
        tbl_unitCat currDBObj = new tbl_unitCat();
        dbContext.tbl_unitCat.InsertOnSubmit(currDBObj);
        //UnitCatID is the identity field
        currDBObj.UnitCatID = row.ItemArray[0].ToInteger();
        currDBObj.UnitCategory = row.ItemArray[1].ToString();
        currDBObj.rawmat = (bool)row.ItemArray[2];
        currDBObj.purchparts = (bool)row.ItemArray[3];
    }

    dbContext.SubmitChanges();
    dbContext.ExecuteCommand("SET IDENTITY_INSERT tbl_unitCat OFF");
    transaction.Complete();
}

失败并出现此错误: 必须为'中的标识列指定显式值。 tbl_unitCat'当IDENTITY_INSERT设置为ON或复制用户插入NOT FOR REPLICATION标识列时表。

我使用的服务器是2005年。 看看SO类似的帖子,我发现了这个MSDN Link

但这对我没有帮助。

有什么建议吗?

0 个答案:

没有答案