2013-12-20 3 views
0

나는 vb.net에서 mysql을 사용하여 수정 보고서에 왼쪽 조인을 만들려고했습니다. 하지만 그것은 내 리포트에 출력을 가지고있는 것 같지 않습니다. 누구든지 vb.net의 크리스탈 리포트에서 왼쪽 조인을 사용하는 방법을 알고 있습니까? 도와주세요. 고마워요!크리스탈 보고서에 mysql을 남기는 방법은 무엇입니까?

HERE IS MY CODE SIR.. 

Imports CrystalDecisions.CrystalReports.Engine 
Imports MySql.Data.MySqlClient 
Imports CrystalDecisions.Shared 
Public Class historyrep 
Dim da As New MySqlDataAdapter 
Dim ds As DataSet 
Dim p(7) As MySqlParameter 
Private Sub historyrep_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim ds As New DataSet 
    Dim sql As String 


    sql = "SELECT complaint.*,solution.* FROM complaint LEFT JOIN solution ON complaint.tran_no=solution.tran_no WHERE complaint.status='finished'" 
    Dim dscmd As New MySqlDataAdapter(sql, connectionsrvr) 

    dscmd.Fill(ds, "complaint") 
    connectionsrvr.Close() 

    Dim objret As New CrystalReport1 
    objret.setdatasource(ds.Tables(0)) 

    CrystalReportViewer1.ReportSource = objret 
    CrystalReportViewer1.Refresh() 
End Sub 
End Class 
+0

.을 사용하고 있습니다 –

+0

불만 사항에 행이 있습니다. 특별히 상태. –

+0

나를 때리는 첫 번째 일은 각 테이블에서 모든 필드를 얻는 것입니다. 두 테이블 모두에 동일한 이름을 가진 필드가 있습니까? 다음으로 테이블에 특정 이름을 지정하지만 인덱스로 테이블을 참조합니다. 귀하의 쿼리는 하나의 결과 테이블을 반환하는 것으로 보이므로 제로 인덱스에 의한 참조는 괜찮을 것입니다. 그러나 이름을 지정하여 참조 할 때 어떤 일이 발생합니까? 명령이 데이터베이스 서버에서 올바르게 실행되는지 여부를 알려주는 프로파일 러가 있습니까? – Zec

답변

0

분명히 구문이 정확하므로 일부 데이터베이스에서 작동하는 Left Outer Join을 시도합니다. 또한 문제 해결을 위해 Where 절을 그대로 두어 모든 레코드가 가능하도록하십시오. 구문이 올바른 곳에서는 가장 넓은 SELECT 문에서 시작한 다음 문제점을 찾을 때까지 정제를 시작해야합니다. 내가 알아챈 또 다른 사실은 당신이 결코 당신의 connectionsrvr을 열지 않는다는 것입니다.

+0

괜찮아요 선생님은 테이블의 각 열을 호출하려고합니다. –

+0

내가 선생님이라고 불리는 모듈에 connectionsrvr을 엽니 다 –

0
  1. 시도가 예상 된 결과 세트 성공, 당신은 크리스탈 리포트 디자이너에 액세스 할 수있는 경우

    SELECT complaint.*, 
         solution.* 
    FROM complaint 
        LEFT JOIN solution 
           ON complaint.tran_no = solution.tran_no 
    WHERE complaint.status = 'finished' 
    
  2. 는 명령과 같은 쿼리를 시도 유사한 MySQL의 워크 벤치에서 자체 쿼리 나 거기 테이블.

  3. 예상되는 결과 세트가 성공하면 문제는 VB 코드 또는 API 통합 어딘가에 있습니다. 모든 이벤트 로그에서 오류 메시지를 확인하십시오.

0

SQL 사용자 지정 쿼리와 ODBC 연결을 사용하고 데이터 집합없이 Crystal Reports에서 명령을 만듭니다. 나는 MySQL의 드라이버 ODBC 6.8, CR (13)와 아마`complaint.status = 'finished'` complaint``에 행이없는 .NET 4.5

Select `table2`.* ,`table1`.* from 
FROM `table1` 
join `table2` on 
`table1`.`Cod_P` = `table2`.`Cod_Prop` 
where 1=1 

Source Mysql.org

+0

왜 "FROM"을 두 개 사용 했습니까? 그리고 왜 '1 = 1'입니까? 그것을 제거하거나'WHERE 1'을 사용하십시오. –

+0

이 예입니다. – jjzd2w

관련 문제