2014-12-02 5 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> 

난 내가 놓치고 무엇을 잘 모릅니다 만 : 여기

내가 할 노력하고 있어요 방법이다. 여기

는 오류 메시지입니다 :

하나 개 이상의 필수 매개 변수에 주어진 값 없음.

설명 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.

예외 정보 예외 : System.Data.OleDb.OleDbException : 하나 이상의 필수 매개 변수에 값이 지정되지 않았습니다.

+0

당신이'db.Query'의 구현을 보여줄 수 :

나는 "그 널 때"그리고 지금 내가이 내가 무슨 짓을

을 방법을 작동 처리? – Vlad

+0

db = Database.Open ("nameofdb"); –

+1

은'transakcioni.IDKlientit' 항상'! = null' 속성입니까? – webber2k6

답변

1

@ webber2k6이 맞습니다. Query에 주어진 무언가가 있습니다.

@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 이유는 설명하지 않습니다

첫째, (당신이 파일의 상단에 @using System.Linq을해야 할 수도 있습니다) 충돌하지 않습니다 확인합니다. 분명히, 이것들은 ID* 속성이 nullable 인 경우에만 의미가 있습니다. 사용자가받는 오류 메시지와 관련된 경우입니다.

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

관련 문제