This is a migrated thread and some comments may be shown as answers.

SqlDataSource Select Statement COUNT field incorrect

1 Answer 51 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Myriam
Top achievements
Rank 1
Myriam asked on 21 May 2009, 03:32 PM
Hello
Here is my sqldatasource statement
 <asp:SqlDataSource id="SqlDSLegende" runat="server" 
            connectionstring="<%$ ConnectionStrings:ConnectionString %>" 
            providerName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
            selectcommand="SELECT dbo_GPM_T_MAT_GRP.INTERV, Right([dbo_gpm_T_MAT_GRP.MAT],1) AS Expr3, dbo_GPM_T_MAT_GRP.GRP, dbo_GPM_T_MAT_GRP.ID_ECO, dbo_GPM_T_MSG_CODE.CAT_MSG_CODE, dbo_GPM_T_MSG_CODE.DESCR FROM (dbo_GPM_T_MAT_GRP INNER JOIN dbo_GPM_T_MAT ON (dbo_GPM_T_MAT_GRP.ID_ECO = dbo_GPM_T_MAT.ID_ECO) AND (dbo_GPM_T_MAT_GRP.MAT = dbo_GPM_T_MAT.MAT)) INNER JOIN dbo_GPM_T_MSG_CODE ON dbo_GPM_T_MAT_GRP.ID_ECO = dbo_GPM_T_MSG_CODE.ID_ECO GROUP BY Left([dbo_GPM_T_MAT_grp].[mat],3), dbo_GPM_T_MAT_GRP.INTERV, Right([dbo_gpm_T_MAT_GRP.MAT],1), dbo_GPM_T_MAT_GRP.GRP, dbo_GPM_T_MAT_GRP.ID_ECO, dbo_GPM_T_MSG_CODE.CAT_MSG_CODE, dbo_GPM_T_MSG_CODE.DESCR HAVING (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='5') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as5' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo5')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='4') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as4' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo4')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='3') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as3' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo3')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='2') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as2' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo2')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='1') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as1' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo1'))">  
            <SelectParameters> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
                
            </SelectParameters> 
        </asp:SqlDataSource> 
It says to me that COUNT field incorrect.
So I put
 <asp:SqlDataSource id="SqlDSLegende" runat="server" 
            connectionstring="<%$ ConnectionStrings:ConnectionString %>" 
            providerName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
            selectcommand="SELECT dbo_GPM_T_MAT_GRP.INTERV, Right([dbo_gpm_T_MAT_GRP.MAT],1) AS Expr3, dbo_GPM_T_MAT_GRP.GRP, dbo_GPM_T_MAT_GRP.ID_ECO, dbo_GPM_T_MSG_CODE.CAT_MSG_CODE, dbo_GPM_T_MSG_CODE.DESCR FROM (dbo_GPM_T_MAT_GRP INNER JOIN dbo_GPM_T_MAT ON (dbo_GPM_T_MAT_GRP.ID_ECO = dbo_GPM_T_MAT.ID_ECO) AND (dbo_GPM_T_MAT_GRP.MAT = dbo_GPM_T_MAT.MAT)) INNER JOIN dbo_GPM_T_MSG_CODE ON dbo_GPM_T_MAT_GRP.ID_ECO = dbo_GPM_T_MSG_CODE.ID_ECO GROUP BY Left([dbo_GPM_T_MAT_grp].[mat],3), dbo_GPM_T_MAT_GRP.INTERV, Right([dbo_gpm_T_MAT_GRP.MAT],1), dbo_GPM_T_MAT_GRP.GRP, dbo_GPM_T_MAT_GRP.ID_ECO, dbo_GPM_T_MSG_CODE.CAT_MSG_CODE, dbo_GPM_T_MSG_CODE.DESCR HAVING (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='5') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as5' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo5')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='4') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as4' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo4')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='3') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as3' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo3')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='2') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as2' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo2')) OR (((Left([dbo_GPM_T_MAT_grp].[mat],3))='tra') AND ((dbo_GPM_T_MAT_GRP.INTERV)=?) AND ((Right([dbo_gpm_T_MAT_GRP.MAT],1))='1') AND ((dbo_GPM_T_MAT_GRP.GRP)=?) AND ((dbo_GPM_T_MAT_GRP.ID_ECO)=?) AND ((dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='as1' Or (dbo_GPM_T_MSG_CODE.CAT_MSG_CODE)='fo1'))">  
            <SelectParameters> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
                <asp:Parameter Name="INTERV" Type="String" /> 
                <asp:Parameter Name="GRP" Type="string" /> 
                <asp:Parameter Name="ID_ECO" Type="int32" /> 
 
            </SelectParameters> 
        </asp:SqlDataSource> 
Even if for me, that doesn't make sense...But the error is gone.
Unfortunatly, there is no record in my datagrid linked to this sqldatasource

In code behind I put that code
  Me.SqlDsLegende.SelectParameters("ID_ECO").DefaultValue = dsLogin.Tables(0).Rows(0).Item("ID_ECO")  
  Me.SqlDSLegende.SelectParameters("INTERV").DefaultValue = dsLogin.Tables(0).Rows(0).Item("NO_INTERV")  
  Me.SqlDSLegende.SelectParameters("GRP").DefaultValue = "01" 

So, does somebody know how to handle many time the same parameter in the same statement??
Thank you very much

1 Answer, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 22 May 2009, 09:10 AM
Hi Myriam,

As far as i know this error is a generic error, usually came when there is  a typo in the select statement, would u please run the select statement in the sql query analizer and make sure that it is returning correclty.

-Shinu.
Tags
Grid
Asked by
Myriam
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Share this question
or