簡體   English   中英

C#(MS Access)中FROM子句中的語法錯誤

[英]Syntax Error in FROM Clause in C#(MS Access)

從MS Access數據庫訪問數據時,from子句中出現語法錯誤,但是如果我在Access中運行相同的查詢,則會得到所需的結果,而不會發生任何錯誤。

任何幫助表示贊賞。 這是我的代碼

string strQuery = string.Empty  ;   


            strQuery = "SELECT TUCLRII.LUSID,TUCLRII.UserID,TUCLRII.LastName,TUCLRII.FirstName,TUCLRII.MI,TUCLRII.Sex,TUCLRII.WhichEye,TUCLRII.Memo1,TUCLRII.Memo2,TUCLRII.CreationDT, TUCLRII.LastModifiedDT,TUCLRII.CardID,TUCLRI.UCID,TUCLRII.WiegandData,TUCLRII.LIrisCodeID,TUCLRII.LWhichEye,TUCLRII.LIrisCode,TUCLRII.RIrisCodeID,TUCLRII.RWhichEye,TUCLRII.RIrisCode,TUCLRII.LIrisImage,TUCLRII.LImageFormat,TUCLRII.LImageSize,TUCLRII.LWhichEye,TUCLRII.RIrisImage,TUCLRII.RImageFormat,TUCLRII.RImageSize,TUCLRII.RWhichEye,TIM.ImageFormat,TIM.ImageSize,TIM.FaceImage,TIM.PictureTakenDT"; 
            strQuery += " FROM (SELECT TUCLRI.LUSID,TUCLRI.UUID,TUCLRI.UserID,TUCLRI.LastName,TUCLRI.FirstName,TUCLRI.MI,TUCLRI.Sex,TUCLRI.WhichEye,TUCLRI.Memo1,TUCLRI.Memo2,TUCLRI.CreationDT,TUCLRI.LastModifiedDT, TUCLRI.CardID, TUCLRI.UCID, TUCLRI.WiegandData, TUCLRI.LIrisCodeID ,TUCLRI.LWhichEye,TUCLRI.LIrisCode,TUCLRI.RIrisCodeID,TUCLRI.RWhichEye,TUCLRI.RIrisCode,TUCLRI.LIrisImage,TUCLRI.LImageFormat,TUCLRI.LImageSize,TUCLRI.LWhichEye,TRIM.IrisImage as RIrisImage,TRIM.ImageFormat as RImageFormat, TRIM.ImageSize as RImageSize, TRIM.WhichEye as RWhichEye";                 
            strQuery += " FROM (SELECT TUCLR.LUSID,TUCLR.UUID,TUCLR.UserID,TUCLR.LastName,TUCLR.FirstName,TUCLR.MI,TUCLR.Sex,TUCLR.WhichEye,TUCLR.Memo1,TUCLR.Memo2,TUCLR.CreationDT,TUCLR.LastModifiedDT,TUCLR.CardID,TUCLR.UCID,TUCLR.WiegandData,TUCLR.LIrisCodeID,TUCLR.LWhichEye,TUCLR.LIrisCode,TUCLR.RIrisCodeID,TUCLR.RWhichEye,TUCLR.RIrisCode,TLIM.IrisImage as LIrisImage,TLIM.ImageFormat as LimageFormat,TLIM.ImageSize as LImageSize,TLIM.WhichEye as LWhichEye";
            strQuery += " FROM (SELECT TUCI.LUSID,TUCI.UUID,TUCI.UserID,TUCI.LastName,TUCI.FirstName,TUCI.MI,TUCI.Sex,TUCI.WhichEye,TUCI.Memo1,TUCI.Memo2,TUCI.CreationDT,TUCI.LastModifiedDT,TUCI.CardID,TUCI.UCID,TUCI.WiegandData, TUCI.LIrisCodeID,TUCI.LWhichEye,TUCI.LIrisCode,TRI.IrisCodeID as RIrisCodeID,TRI.WhichEye as RWhichEye,TRI.IrisCode as RIrisCode";  
            strQuery += " FROM (SELECT TUC.LUSID,TUC.UUID,TUC.UserID,TUC.LastName,TUC.FirstName,TUC.MI,TUC.Sex,TUC.WhichEye,TUC.Memo1,TUC.Memo2,TUC.CreationDT,TUC.LastModifiedDT,TUC.CardID,TUC.UCID,TUC.WiegandData,TLI.IrisCodeID as LIrisCodeID,TLI.WhichEye as LWhichEye,TLI.IrisCode as LIrisCode";
            strQuery += " FROM (SELECT TU.LUSID,TU.UUID,TU.UserID,TU.LastName,TU.FirstName,TU.MI,TU.Sex,TU.WhichEye,TU.Memo1,TU.Memo2,TU.CreationDT,TU.LastModifiedDT,TC.CardID,TC.UCID,TC.WiegandData FROM UserInfo TU left join CardInfo TC on (TU.UUID=TC.UUID and TU.LUSID = 0)) TUC LEFT JOIN IrisCodeInfo TLI ON(TUC.UUID = TLI.UUID and TLI.WhichEye=1))TUCI LEFT JOIN IrisCodeInfo TRI ON(TUCI.UUID = TRI.UUID and TRI.WhichEye=2))TUCLR LEFT JOIN IrisImageInfo TLIM ON(TUCLR.UUID = TLIM.UUID and TLIM.WhichEye=1))TUCLRI LEFT JOIN IrisImageInfo TRIM ON(TUCLRI.UUID = TRIM.UUID and TRIM.WhichEye=2))TUCLRII LEFT JOIN FaceImageInfo TIM ON(TUCLRII.UUID = TIM.UUID)";

我將您的字符串語句放入了Instant SQL Formatter中

並得到這個

SELECT tuclrii.lusid, 
       tuclrii.userid, 
       tuclrii.lastname, 
       tuclrii.firstname, 
       tuclrii.mi, 
       tuclrii.sex, 
       tuclrii.whicheye, 
       tuclrii.memo1, 
       tuclrii.memo2, 
       tuclrii.creationdt, 
       tuclrii.lastmodifieddt, 
       tuclrii.cardid, 
       tuclri.ucid, 
       tuclrii.wieganddata, 
       tuclrii.liriscodeid, 
       tuclrii.lwhicheye, 
       tuclrii.liriscode, 
       tuclrii.ririscodeid, 
       tuclrii.rwhicheye, 
       tuclrii.ririscode, 
       tuclrii.lirisimage, 
       tuclrii.limageformat, 
       tuclrii.limagesize, 
       tuclrii.lwhicheye, 
       tuclrii.ririsimage, 
       tuclrii.rimageformat, 
       tuclrii.rimagesize, 
       tuclrii.rwhicheye, 
       tim.imageformat, 
       tim.imagesize, 
       tim.faceimage, 
       tim.picturetakendt 
FROM   (SELECT tuclri.lusid, 
               tuclri.uuid, 
               tuclri.userid, 
               tuclri.lastname, 
               tuclri.firstname, 
               tuclri.mi, 
               tuclri.sex, 
               tuclri.whicheye, 
               tuclri.memo1, 
               tuclri.memo2, 
               tuclri.creationdt, 
               tuclri.lastmodifieddt, 
               tuclri.cardid, 
               tuclri.ucid, 
               tuclri.wieganddata, 
               tuclri.liriscodeid, 
               tuclri.lwhicheye, 
               tuclri.liriscode, 
               tuclri.ririscodeid, 
               tuclri.rwhicheye, 
               tuclri.ririscode, 
               tuclri.lirisimage, 
               tuclri.limageformat, 
               tuclri.limagesize, 
               tuclri.lwhicheye, 
               TRIM.irisimage   AS ririsimage, 
               TRIM.imageformat AS rimageformat, 
               TRIM.imagesize   AS rimagesize, 
               TRIM.whicheye    AS rwhicheye 
        FROM   (SELECT tuclr.lusid, 
                       tuclr.uuid, 
                       tuclr.userid, 
                       tuclr.lastname, 
                       tuclr.firstname, 
                       tuclr.mi, 
                       tuclr.sex, 
                       tuclr.whicheye, 
                       tuclr.memo1, 
                       tuclr.memo2, 
                       tuclr.creationdt, 
                       tuclr.lastmodifieddt, 
                       tuclr.cardid, 
                       tuclr.ucid, 
                       tuclr.wieganddata, 
                       tuclr.liriscodeid, 
                       tuclr.lwhicheye, 
                       tuclr.liriscode, 
                       tuclr.ririscodeid, 
                       tuclr.rwhicheye, 
                       tuclr.ririscode, 
                       tlim.irisimage   AS lirisimage, 
                       tlim.imageformat AS limageformat, 
                       tlim.imagesize   AS limagesize, 
                       tlim.whicheye    AS lwhicheye 
                FROM   (SELECT tuci.lusid, 
                               tuci.uuid, 
                               tuci.userid, 
                               tuci.lastname, 
                               tuci.firstname, 
                               tuci.mi, 
                               tuci.sex, 
                               tuci.whicheye, 
                               tuci.memo1, 
                               tuci.memo2, 
                               tuci.creationdt, 
                               tuci.lastmodifieddt, 
                               tuci.cardid, 
                               tuci.ucid, 
                               tuci.wieganddata, 
                               tuci.liriscodeid, 
                               tuci.lwhicheye, 
                               tuci.liriscode, 
                               tri.iriscodeid AS ririscodeid, 
                               tri.whicheye   AS rwhicheye, 
                               tri.iriscode   AS ririscode 
                        FROM   (SELECT tuc.lusid, 
                                       tuc.uuid, 
                                       tuc.userid, 
                                       tuc.lastname, 
                                       tuc.firstname, 
                                       tuc.mi, 
                                       tuc.sex, 
                                       tuc.whicheye, 
                                       tuc.memo1, 
                                       tuc.memo2, 
                                       tuc.creationdt, 
                                       tuc.lastmodifieddt, 
                                       tuc.cardid, 
                                       tuc.ucid, 
                                       tuc.wieganddata, 
                                       tli.iriscodeid AS liriscodeid, 
                                       tli.whicheye   AS lwhicheye, 
                                       tli.iriscode   AS liriscode 
                                FROM   (SELECT tu.lusid, 
                                               tu.uuid, 
                                               tu.userid, 
                                               tu.lastname, 
                                               tu.firstname, 
                                               tu.mi, 
                                               tu.sex, 
                                               tu.whicheye, 
                                               tu.memo1, 
                                               tu.memo2, 
                                               tu.creationdt, 
                                               tu.lastmodifieddt, 
                                               tc.cardid, 
                                               tc.ucid, 
                                               tc.wieganddata 
                                        FROM   userinfo tu 
                                               LEFT JOIN cardinfo tc 
                                                 ON ( tu.uuid = tc.uuid 
                                                      AND tu.lusid = 0 )) tuc 
                                       LEFT JOIN iriscodeinfo tli 
                                         ON( tuc.uuid = tli.uuid 
                                             AND tli.whicheye = 1 ))tuci 
                               LEFT JOIN iriscodeinfo tri 
                                 ON( tuci.uuid = tri.uuid 
                                     AND tri.whicheye = 2 ))tuclr 
                       LEFT JOIN irisimageinfo tlim 
                         ON( tuclr.uuid = tlim.uuid 
                             AND tlim.whicheye = 1 ))tuclri 
               LEFT JOIN irisimageinfo TRIM 
                 ON( tuclri.uuid = TRIM.uuid 
                     AND TRIM.whicheye = 2 ))tuclrii 
       LEFT JOIN faceimageinfo tim 
         ON( tuclrii.uuid = tim.uuid ) 

看來您為每個聯接創建了一個內聯視圖。

從語法上看,對我來說不錯,但是Access可能不喜歡它。 當您僅可以使用標准聯接時,這是一種非常低效的聯接方式

SELECT tu.lusid, 
       tu.userid, 
       tu.lastname, 
       tu.firstname, 
       tu.mi, 
       tu.sex, 
       tu.whicheye, 
       tu.memo1, 
       tu.memo2, 
       tu.creationdt, 
       tu.lastmodifieddt, 
       tc.cardid, 
       tc.ucid, 
       tc.wieganddata, 
       tli.iriscodeid AS liriscodeid, 
       tli.whicheye   AS lwhicheye, 
       tli.iriscode   AS liriscode 
       tri.iriscodeid AS ririscodeid, 
       tri.whicheye   AS rwhicheye, 
       tri.iriscode   AS ririscode,  
       tlim.irisimage   AS lirisimage, 
       tlim.imageformat AS limageformat, 
       tlim.imagesize   AS limagesize, 
       tlim.whicheye    AS lwhicheye 
       TRIM.irisimage   AS ririsimage, 
       TRIM.imageformat AS rimageformat, 
       TRIM.imagesize   AS rimagesize, 
       TRIM.whicheye    AS rwhicheye 
       tim.imageformat, 
       tim.imagesize, 
       tim.faceimage, 
       tim.picturetakendt
FROM   
    userinfo tu 
    LEFT JOIN cardinfo tc 
    ON ( tu.uuid = tc.uuid 
         AND tu.lusid = 0 )
    LEFT JOIN iriscodeinfo tli 
    ON( tu.uuid = tli.uuid 
        AND tli.whicheye = 1 )
    LEFT JOIN iriscodeinfo tri 
    ON( tu.uuid = tri.uuid 
        AND tri.whicheye = 2 )
    LEFT JOIN irisimageinfo tlim 
        ON( tli.uuid = tlim.uuid 
        AND tlim.whicheye = 1 )
    LEFT JOIN irisimageinfo TRIM 
            ON( tri.uuid = TRIM.uuid 
               AND TRIM.whicheye = 2 )
       LEFT JOIN faceimageinfo tim 
         ON( tu.uuid = tim.uuid ) 

您在JOIN子句的括號中缺少了一些空格。 不過,我不確定這是否是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM