c# – Sql Server CE – 临时禁用特定列的自动增量
发布时间:2020-12-15 08:23:36 所属栏目:百科 来源:网络整理
导读:我有一个小问题,现在已经有一段时间了. 在这里: 是否可以临时禁用列ID上的Auto_Increment. 这样我就可以向表中添加一个新行,并在插入行时指定ID值. 然后最后再次启用Auto_Increment,让它像往常一样工作? 如果它可能我怎么能这样做? 表结构非常简单 列名(
我有一个小问题,现在已经有一段时间了.
在这里: 是否可以临时禁用列ID上的Auto_Increment. 这样我就可以向表中添加一个新行,并在插入行时指定ID值. 然后最后再次启用Auto_Increment,让它像往常一样工作? 如果它可能我怎么能这样做? 表结构非常简单 列名(属性) ID (Primary Key,Auto Increment,int,not null) Name (nvarchar(100),not null) 注意: >表名是:人. 我真的希望它有可能,它会变得非常方便. 谢谢 编辑 SqlActions SqlActions = new SqlActions(); SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON",SqlActions.Connection()); try { SqlCmd.ExecuteNonQuery(); } catch (SqlCeException Error) { Console.WriteLine(Error.ToString()); } string query = "INSERT INTO People SET (ID,Nome) VALUES (@ID,@Nome)"; SqlCeCommand SqlInsert = new SqlCeCommand(query,SqlActions.Connection()); SqlInsert.Parameters.AddWithValue("@ID",15); SqlInsert.Parameters.AddWithValue("@Nome","Maria"); try { SqlInsert.ExecuteNonQuery(); } catch (SqlCeException Error) { Console.WriteLine(Error.ToString()); } 连接字符串正在工作,我已经尝试过了. 他报告说:
解决方案感谢OrbMan SqlActions SqlActions = new SqlActions(); SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON",SqlActions.Connection()); try { SqlCmd.ExecuteNonQuery(); string query = "INSERT INTO People (ID,@Nome)"; SqlCmd.CommandText = query; SqlCmd.Parameters.AddWithValue("@ID",15); SqlCmd.Parameters.AddWithValue("@Nome","Vania"); SqlCmd.ExecuteNonQuery(); } catch (SqlCeException Error) { Console.WriteLine(Error.ToString()); } 解决方法
我相信你可以使用
SET IDENTITY_INSERT .我不确定这是否适用于所有版本.
更新2: 试试这个版本: SqlActions SqlActions = new SqlActions(); SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON",SqlActions.Connection()); try { SqlCmd.ExecuteNonQuery(); string query = "INSERT INTO People (ID,@Nome)"; SqlCmd.CommandText = query; SqlCmd.Parameters.AddWithValue("@ID",15); SqlCmd.Parameters.AddWithValue("@Nome","Maria"); SqlCmd.ExecuteNonQuery(); } catch (SqlCeException Error) { Console.WriteLine(Error.ToString()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |