在三层架构中,id自动递增并显示在文本框中

本文关键字:文本 显示 三层 id | 更新日期: 2023-09-27 18:04:25

我使用的是Visual Studio 2008, ASP。我的项目。NET 3.5和c#。我使用三层架构进行数据库连接。我设计了一个带有ID、姓名、年龄等的表单。在数据库表中,id是主键。在页面加载时,我想在文本框中自动显示id的下一个值。然后,用户必须输入其他详细信息,如姓名、年龄等。之后,我想提交数据到表中。有人能提出一个好主意吗?我对三层架构很陌生

在三层架构中,id自动递增并显示在文本框中

您可以使用max函数并获得增量列的最大值,但是当有多个请求时就会出现问题。

因此,为了处理这种情况,您可以将值存储在静态变量中一次,然后增加它的值。

但是如果有人取消提交,仍然会引起问题。

因此,您需要检查数据库,并要求以定期间隔轮询最大值,并且必须检查静态变量并必须相应地进行更新。

基本上,你需要定义你的算法,以更流畅的方式完成。

首先从id column

获取最大值
select max(id) from TableName

则增加1,并将此值设置为textbox

从安全的角度来看,从数据库显示用户Id不是一个好主意在我们的项目中,如果我们需要发送到UI Id的Id之前加密。在你的情况下,我认为如果Id是自动生成的SQL它不需要显示在视图上。无论如何,您应该避免显示未加密的id

这是非常基本的东西,编写实体代码和数据库层连接代码以及所有这些非常常见,并且从一个项目到下一个项目几乎相同。手工编码很容易出错,而且耗时,而且完全没有必要。我强烈建议使用codessmith之类的工具生成代码,使用nettiers框架之类的工具。

我不知道你为什么要在表单上显示ID。正确的方法是使用表单填充实体,然后使用数据层保存该实体。在像nettiers这样的框架中,无论是新实体还是更新或更改的实体都被跟踪,并且框架处理所有适当的数据库调用。您永远不需要真正了解ID,除非需要从数据库中读取数据。但是从数据层返回的实体在保存之后应该已经设置了新的ID。