【问题标题】:Selecting an id from database using razor pages?使用剃刀页面从数据库中选择一个ID?
【发布时间】:2019-07-31 13:07:01
【问题描述】:

我是下面的人。当用户注册时,他的账户名和密码被放入一个现有的表中。然后从该表中读取他的 id,并使用该 id 作为表名创建另一个表。

现在插入效果很好,但从该表中读取 Id 似乎给我带来了一些问题。

现在,如果我什至能够让该 id 显示在我的网页上,那就太好了。我觉得当我能够做到这一点时,我可以做一些类似 CREAT TABLE + @Id + 等的事情。

这是我目前所拥有的

var gebruikersnaam = Request.Form["registnaam"];
var wachtwoord = Request.Form["registpassword"];

if (IsPost && Request.Form["registreren"] == "Registreren")
{
    var insertCommand = db.Execute("INSERT INTO Accounts (gebruikersnaam, wachtwoord) VALUES(@0, @1)", gebruikersnaam, wachtwoord);
    var id = db.Query("SELECT * FROM Accounts WHERE gebruikersnaam = @0", gebruikersnaam);
    Response.Write(@id);
}

这就是Response.Write(@id) 在网页上向我展示的内容:

System.Collections.ObjectModel.ReadOnlyCollection`1[System.Object]

【问题讨论】:

  • 我实际上发现这一切都通过使用 db.queryvalue 而不仅仅是 db.query 得到了解决,现在我遇到的唯一其他问题是尝试类似 db.execute("CREATE TABLE "+ Id +" etc") 我收到一个错误,提示附近的语法不正确,然后是我的 ID 号。
  • 有关使用 OUTPUT 子句的更多信息,请参阅此问题 stackoverflow.com/questions/10999396/…
  • 您不能将表格命名为需要在其前面加上前缀的数字。例如 ($"CREATE TABLE T{id}" )。把我告诫不要为每个用户创建表。可能更好,所以所有数据都在表中的行中,而不是单独的表中。

标签: asp.net database razor asp.net-webpages


【解决方案1】:

尝试将创建和选择查询合并为一个。

INSERT INTO Accounts (gebruikersnaam, wachtwoord) 
OUTPUT Inserted.Id
VALUES('value1', 'value2')

使用单独的查询获取 Id 将来可能会成为问题,尤其是在数据变大的情况下,这样做可以优化数据库中数据检索的速度,就像获取插入记录的 Id 一样。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多