2014-12-02 54 views
0

我想用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

您能不能告訴執行'db.Query'的? – Vlad 2014-12-02 08:07:50

+0

db = Database.Open(「nameofdb」); – 2014-12-02 08:11:35

+1

是屬性'transakcioni.IDKlientit'總是'!= null'? – webber2k6 2014-12-02 08:13:59

回答

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*屬性都是可空的時候纔有意義,我猜這是關於你得到的錯誤信息的情況。

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> 
     }} 
+0

什麼都不起作用? Linq似乎更優雅,在foreach循環內部進行'null'檢查。 – Askolein 2014-12-05 13:18:49