0

我有一个只有ID描述列的sql 表。ID列是,当我使用 sql server management studio 时,sql server 会自动增加它。我使用C#项目在此表上添加数据,并使用断开连接的架构。我只为表提供描述列值,并且我希望 ID 列像 sql server 一样在数据集表上自动增加。有什么办法吗?identity primary keydataset

4

5 回答 5

2

您需要实现自己的序列。在您的应用程序或数据库中保留最后分配的值。将下一个 id 作为 oldvalue +1 并更新 old value 。Sql server 无法帮助您,因为您处于“断开连接模式”

于 2013-08-05T10:33:33.417 回答
1

您可以在 DataTable 中设置自动增量字段,但这种方式生成的 ID 与 SQL Server 生成的 ID 不同。

您可以使用 GUID 作为您的 ID,如果您想从客户端将 ID 插入数据库,或者您可以在客户端上生成假 ID 以在您的 DataSet 中具有主键,但在插入新行时不将此 ID 作为参数传递到数据库中,所以当你插入时 SQL 会生成新的 ID。

于 2013-08-05T10:35:38.510 回答
0

如果您从 sql 表中获取 Desc,那么为什么不从 ID 列中获取值呢?

于 2013-08-05T10:30:04.893 回答
0

为了为断开连接的应用程序和数据源创建主键以避免多个客户端使用相同的数字 - 请改用 GUID,因为它们始终是唯一的。

于 2013-08-05T10:41:10.363 回答
0

此代码将帮助您,这是如何将 AutoIncrement 列添加到DataTable

DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;

// Add the column to a new DataTable.
DataTable table = new DataTable("table");
table.Columns.Add(column);
于 2013-08-05T10:33:27.970 回答