首页 > 解决方案 > 如何从数据库 Blazor C# 中获取 Id 数据

问题描述

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

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

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

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

在此处输入图像描述

我得到了一个 FiledbData 类,我从这里调用 db,如下所示:

在此处输入图像描述

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

标签: c#sql-serverdatabaseblazor-server-sidedata-access-layer

解决方案


您可以使用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


推荐阅读