如何从数据库 Blazor C# 中获取 ID 数据

how to Get by Id data from database Blazor C#

已经开始使用 blazor 服务器端进行 crud 以从数据库获取数据

我现在正在创建一个页面,我将在其中查看详细信息并编辑列表中的一项

我得到了我想要显示的项目的 ID,但我的 crud 解决方案给了我一个对象列表,而不仅仅是我需要的一个......

我得到了我的 SqlDataAccess,我在其中编写了两个主要函数(加载 -> QueryAsync 和保存 -> ExecuteAsync),其界面如下所示:

我从我调用 db 的地方得到了一个 FiledbData class :

我现在只想向数据库询问 getbyId 之类的一项,而不是获取所有数据...

where 子句添加到您的数据库 SQL 查询并创建 GetFiles() 的重载,该重载采用将插入到 SQL 查询中的 ID 值:

public Task<List<FileModel>> GetFile(Guid id)
{
    string sql = $"select * from myTable where Id = '{id:D}'";

    return _db.LoadData<FileModel, dynamic>(sql, new  { });
}

您可以使用 parameterized queries 来执行 where 子句。

因此 GetFile 方法将是这样的:

public Task<FileModel> GetFilebyId(int id)
{
    string sql = "select * from dbo.file.. where Id = @Id";
    return _db.LoadSingleResult<FileModel, dynamic>(sql, new  {Id = id });
}

您还需要添加一个新方法 LoadSingleResult,如下所示(除 try 部分之外的其他部分与您的 LoadData 方法类似):

public async Task<T> LoadSingleResult<T,U>(string sql, U parameters)
{
   .
   .
   .
   try{
       var data=await connection.QueryAsynch<T>(sql, parameters);
       reurn data.Single();
   }
   .
   .
   .
}

注意:

  • id 列假定为 Id
  • id 列假定为 integer

您也可以使用 QuerySingleOrDefaultAsync