Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ADO.NET自动递增主键_C#_Visual Studio_Sqlite_Ado.net - Fatal编程技术网

C# ADO.NET自动递增主键

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(

我正在尝试将SQLite与ADO.NET TableAdapters和xsd模式一起使用

生成自动增量值的最佳实践是什么?SQLite手册说,如果主键字段发送NULL,则会自动生成键。但是模式编辑器不允许NULL

使用DataReader可能更容易,但我想使用TableAdapters的功能

--更新--

这是有帮助的:

但现在还有一个问题: 使用INSERT时,如何从DB获取生成的密钥?我看到当执行INSERT命令时,我的表(内存中)仍然包含0,而不是DB生成的键


当然,我可以使用fill()方法获取更新后的值,但它看起来非常不理想。

看看这个答案,看看它是否解决了您的问题。基本上,您可能需要在数据集设计器(TableAdapter)中调整所述列(自动增量字段)的属性。谢谢你的链接!但现在我有另一个问题:如何从DB中获取生成的密钥?我看到在执行INSERT命令时,我的表(内存中)仍然包含0,而不是DB生成的键。@llya很抱歉,我没有使用TableAdapter,所以我不能给您提供太多指导。如果生成的INSERT sql返回新创建的标识(使用@@identity或SCOPE_IDENITY()(您应该在生成的sql语句中看到它),则它可能返回标识。或者必须(在设计器中)进行配置。此问题和答案可能对您有所帮助