我正在尝试用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:没有为一个或多个必需参数指定值。
答案 0 :(得分:1)
@ 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*
属性可以为空时才有意义,我猜,这是关于你得到的错误信息的情况。
答案 1 :(得分:0)
您的代码修复无效,但您的建议已经完成!
我处理“当它为空时”,现在它按照我想要的方式工作
这就是我所做的:
@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>
}}