如何从数据库 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。
已经开始使用 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。