C# ADO.NET自动递增主键
我正在尝试将SQLite与ADO.NET TableAdapters和xsd模式一起使用 生成自动增量值的最佳实践是什么?SQLite手册说,如果主键字段发送NULL,则会自动生成键。但是模式编辑器不允许NULL 使用DataReader可能更容易,但我想使用TableAdapters的功能 --更新-- 这是有帮助的: 但现在还有一个问题: 使用INSERT时,如何从DB获取生成的密钥?我看到当执行INSERT命令时,我的表(内存中)仍然包含0,而不是DB生成的键C# ADO.NET自动递增主键,c#,visual-studio,sqlite,ado.net,C#,Visual Studio,Sqlite,Ado.net,我正在尝试将SQLite与ADO.NET TableAdapters和xsd模式一起使用 生成自动增量值的最佳实践是什么?SQLite手册说,如果主键字段发送NULL,则会自动生成键。但是模式编辑器不允许NULL 使用DataReader可能更容易,但我想使用TableAdapters的功能 --更新-- 这是有帮助的: 但现在还有一个问题: 使用INSERT时,如何从DB获取生成的密钥?我看到当执行INSERT命令时,我的表(内存中)仍然包含0,而不是DB生成的键 当然,我可以使用fill(
当然,我可以使用fill()方法获取更新后的值,但它看起来非常不理想。看看这个答案,看看它是否解决了您的问题。基本上,您可能需要在数据集设计器(TableAdapter)中调整所述列(自动增量字段)的属性。谢谢你的链接!但现在我有另一个问题:如何从DB中获取生成的密钥?我看到在执行INSERT命令时,我的表(内存中)仍然包含0,而不是DB生成的键。@llya很抱歉,我没有使用TableAdapter,所以我不能给您提供太多指导。如果生成的INSERT sql返回新创建的标识(使用@@identity或SCOPE_IDENITY()(您应该在生成的sql语句中看到它),则它可能返回标识。或者必须(在设计器中)进行配置。此问题和答案可能对您有所帮助