gpt4 book ai didi

ASP.NET 和 SQL Server : can #temp-table be used by an ASP. NET Web 表单应用程序?

转载 作者:行者123 更新时间:2023-12-02 20:27:58 24 4
gpt4 key购买 nike

在我们使用 SQL Server 的 ASP.NET 4.6 Webforms 应用程序中,我们希望页面使用 #temptable,但我们无法让它工作。 Page1 在 SQL Server 中创建 #temptable,然后启动 Page2#temptable 放入要在网格内编辑的 GridView。

Page2加载并变得可见时,#temptable的范围似乎没有超出服务器上的Page1浏览器。

我们正在考虑使用数据库本身的表,而不是#temptable。此外,其他用户可能能够编辑相同的表,但使用不同的“数据”。我们认为#temptable将属于特定用户(来自浏览器)。

任何指导将不胜感激。谢谢...约翰。

答案:根据@Faruq的解释,我们将为每个用户使用一个普通的数据库表。

最佳答案

恐怕 #tempTable 和 ##tempTable 都不适合您。让我解释一下。

本地临时表:
当您在 SQL Server 中使用#someName时,它会创建一个具有当前数据库连接范围的临时表。在您的情况下,#tempTable 在 Page1 中创建,并在 Page1 中的数据库连接关闭后立即删除。因此,当您从 Page2 打开连接时,该表不再存在。

全局临时表:
当您使用##someName(注意双散列)时,它会创建一个可从多个连接访问的全局临时表。在某种程度上,它的工作方式与普通数据库表类似,但位于 tempdb 内部,并且通常比普通表慢。在您的情况下,您需要每个用户一张表;所以全局临时表不符合该标准。

session 存储:
如果数据量较小,可以考虑存储在session变量中。此外,还有一个选项可以配置 Asp.Net session 以使用 SQL 数据库。我以前从未这样做过,但这是你可以研究的事情。但是,在 session 变量中存储对象时要非常小心,因为所有引用的对象(及其引用的对象等)也将被序列化并存储在 session 中。

数据库表
在我看来,最好的选择是使用普通的数据库表来存储所有用户的数据,并使用带有每个用户键的列(如 SessionId)来分隔数据。您还必须实现清理技术来删除旧数据。

关于ASP.NET 和 SQL Server : can #temp-table be used by an ASP. NET Web 表单应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49451786/

24 4 0