虽然我使用ltrim,但从数据库到itemcode的记录没有空格

时间:2018-02-14 08:52:18

标签: .net tsql c#-4.0 sql-server-2012 windows-forms-designer

问题

当带有项目代码的匹配项代码由ltrim包含空格时,它将获得空结果

详情

我进行SQL查询以从数据库中获取客户的最新价格

正确的结果是13.5价格值

但它给我null

项目代码中的问题在数据库中的项目代码中有空格,所以我不

知道如何匹配项目代码有空格以获得正确的结果

我的查询如下

string MaxPrice = @"SELECT   max(  dbo.TrxInvf.Price)
                                FROM         dbo.TrxInvF INNER JOIN
                                dbo.TrxInvH ON dbo.TrxInvF.BranchCode = dbo.TrxInvH.BranchCode AND dbo.TrxInvF.Trxtype = dbo.TrxInvH.Trxtype AND 
                                dbo.TrxInvF.TrxYear = dbo.TrxInvH.TrxYear AND dbo.TrxInvF.TrxSerial = dbo.TrxInvH.TrxSerial INNER JOIN
                                dbo.trxtypeConfig ON dbo.TrxInvF.BranchCode = dbo.trxtypeConfig.BranchCode AND dbo.TrxInvF.Trxtype = dbo.trxtypeConfig.trxtypecode
                                WHERE     (dbo.trxtypeConfig.TrxTypeID = 2) AND (dbo.trxtypeConfig.TrxKind = 1) AND (dbo.TrxInvH.TargetType = 1) AND (dbo.TrxInvH.TargetCode = " + Customercode + @") AND ( ltrim( dbo.TrxInvf.ItemCode) = '" + codeitem + @"') 
                                and TrxDate = (
                                SELECT   max(  dbo.TrxInvH.TrxDate)
                                FROM         dbo.TrxInvF INNER JOIN
                                dbo.TrxInvH ON dbo.TrxInvF.BranchCode = dbo.TrxInvH.BranchCode AND dbo.TrxInvF.Trxtype = dbo.TrxInvH.Trxtype AND 
                                dbo.TrxInvF.TrxYear = dbo.TrxInvH.TrxYear AND dbo.TrxInvF.TrxSerial = dbo.TrxInvH.TrxSerial INNER JOIN
                                dbo.trxtypeConfig ON dbo.TrxInvF.BranchCode = dbo.trxtypeConfig.BranchCode AND dbo.TrxInvF.Trxtype = dbo.trxtypeConfig.trxtypecode
                                WHERE     (dbo.trxtypeConfig.TrxTypeID = 2) AND (dbo.trxtypeConfig.TrxKind = 1) AND (dbo.TrxInvH.TargetType = 1) AND (dbo.TrxInvH.TargetCode = " + Customercode + @") AND ( ltrim (dbo.TrxInvf.ItemCode) = '" + codeitem + @"')  )";

项目代码中的问题有空格,因此我无法匹配item的值  获得价值。

以便如何匹配项目代码以从最后的数据库中获取正确的值

客户的价格。

在visual studio 2015的调试器中我的查询如下,不使用

变量:

SELECT   max(  dbo.TrxInvf.Price)
                                FROM         dbo.TrxInvF INNER JOIN
                                dbo.TrxInvH ON dbo.TrxInvF.BranchCode = dbo.TrxInvH.BranchCode AND dbo.TrxInvF.Trxtype = dbo.TrxInvH.Trxtype AND 
                                dbo.TrxInvF.TrxYear = dbo.TrxInvH.TrxYear AND dbo.TrxInvF.TrxSerial = dbo.TrxInvH.TrxSerial INNER JOIN
                                dbo.trxtypeConfig ON dbo.TrxInvF.BranchCode = dbo.trxtypeConfig.BranchCode AND dbo.TrxInvF.Trxtype = dbo.trxtypeConfig.trxtypecode
                                WHERE     (dbo.trxtypeConfig.TrxTypeID = 2) AND (dbo.trxtypeConfig.TrxKind = 1) AND (dbo.TrxInvH.TargetType = 1) AND (dbo.TrxInvH.TargetCode = 125204) AND ( ltrim( dbo.TrxInvf.ItemCode) = '            10200025') 
                                and TrxDate = (
                                SELECT   max(  dbo.TrxInvH.TrxDate)
                                FROM         dbo.TrxInvF INNER JOIN
                                dbo.TrxInvH ON dbo.TrxInvF.BranchCode = dbo.TrxInvH.BranchCode AND dbo.TrxInvF.Trxtype = dbo.TrxInvH.Trxtype AND 
                                dbo.TrxInvF.TrxYear = dbo.TrxInvH.TrxYear AND dbo.TrxInvF.TrxSerial = dbo.TrxInvH.TrxSerial INNER JOIN
                                dbo.trxtypeConfig ON dbo.TrxInvF.BranchCode = dbo.trxtypeConfig.BranchCode AND dbo.TrxInvF.Trxtype = dbo.trxtypeConfig.trxtypecode
                                WHERE     (dbo.trxtypeConfig.TrxTypeID = 2) AND (dbo.trxtypeConfig.TrxKind = 1) AND (dbo.TrxInvH.TargetType = 1) AND (dbo.TrxInvH.TargetCode = 125204) AND ( ltrim (dbo.TrxInvf.ItemCode) = '            10200025')  )

0 个答案:

没有答案