尝试在查询中查询,但它不起作用
本文关键字:查询 不起作用 | 更新日期: 2023-09-27 18:32:55
我正在尝试用来自SQL的数据填充一个表,我必须在查询中查询才能获得预期的结果。
这是我尝试的方式:
// Queries
var transakcionet = db.Query("SELECT * FROM Ditari WHERE IDUrdheresa = @0", ID);
// IDKlientit has unique value so the below query will always return one row
var klienti = "SELECT cEmertimi_i_klientit FROM Klienti WHERE (IDKlientit = @0)";
<tbody>
@foreach(var transakcioni in transakcionet){
<tr>
// This works
@foreach(var kontoja in db.Query(kontoTrans, transakcioni.IDKontos)){
<td>@kontoja.cNumri_i_kontos</td>
}
// This is what is causing the error (i guess)
@foreach(var klja in db.Query(klienti, transakcioni.IDKlientit)){
<td>@klja.cEmertimi_i_klientit</td>
}
</tr>
</tbody>
我不知道我错过了什么,但是。
以下是错误消息:
没有为一个或多个必需参数提供值。
说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:没有为一个或多个必需参数提供值。
@webber2k6是对的。给Query
一些空的东西.
首先,确保它不会崩溃(您可能需要在文件顶部@using System.Linq
):
@foreach(var transakcioni in transakcionet.Where(t => t.IDKontos != null && t.IDKlientit != null){
<tr>
// This works
@foreach(var kontoja in db.Query(kontoTrans, transakcioni.IDKontos)){
<td>@kontoja.cNumri_i_kontos</td>
}
// This is what is causing the error (i guess)
@foreach(var klja in db.Query(klienti, transakcioni.IDKlientit)){
<td>@klja.cEmertimi_i_klientit</td>
}
</tr>
但这并不能解释为什么首先null
该值。显然,只有当这些ID*
属性可为空时,这才有意义,我想,您收到的错误消息就是这种情况。
您的代码修复不起作用,但您的建议起作用了!
我处理了"当它为空时",现在它按照我想要的方式工作
这是我所做的:
@foreach(var transakcioni in transakcionet){
<tr>
@foreach(var kontoja in db.Query(kontoTrans, transakcioni.IDKontos)){
<td>@kontoja.cNumri_i_kontos</td>
}
@if(transakcioni.IDKlientit == null){
<td>No name</td>
}else {
foreach(var kli in db.Query(klienti, transakcioni.IDKlientit)){
<td>@kli.cEmertimi_i_klientit</td>
}}