using parameter markers in case in where clause of SelectCommand in SqlDataSourcehttp://forums.asp.net/t/1788797.aspx/1?using+parameter+markers+in+case+in+where+clause+of+SelectCommand+in+SqlDataSourceThu, 05 Apr 2012 02:10:06 -040017887974914634http://forums.asp.net/p/1788797/4914634.aspx/1?using+parameter+markers+in+case+in+where+clause+of+SelectCommand+in+SqlDataSourceusing parameter markers in case in where clause of SelectCommand in SqlDataSource <p>Hello, I am trying to use a select command in a SqlDataSource to load a GridView.&nbsp; I am trying to use parameter markers in a case in the where clause of the select but get the following error when the sql executes...</p> <p>Message: Sys.WebForms.PageRequestManagerServerErrorException: SQL0417: Combination of parameter markers not valid.<br> Cause . . . . . :&nbsp;&nbsp; The statement string specified as the object of a PREPARE statement contains a predicate or expression where parameter markers have been used as operands of the same operator.&nbsp; The following restrictions apply to the use of parameter markers: -- Both the operands in a predicate cannot be parameter markers. For example, specifying predicates of the form:&nbsp;&nbsp;&nbsp; ? = ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp;&nbsp; ? = ( SELECT ? FROM x ) are not valid. -- Both the operands in a expression cannot be parameter markers. For example, specifying an expression of the form:&nbsp;&nbsp;&nbsp; ? &#43; ? is not valid. -- At least one of the operands in the BETWEEN predicate cannot be a parameter marker.&nbsp; For example, specifying the predicate of the form:&nbsp;&nbsp;&nbsp; ? BETWEEN ? and ? is not valid. -- At least, one of the operands of the IN predicate must not be a parameter marker.&nbsp; For example, specifying the predicate of the form:&nbsp;&nbsp;&nbsp; ? IN (?, ?, ?) is not valid. Recovery&nbsp; . . . :&nbsp;&nbsp; Correct the statement so that all operands of the predicate or expression are not parameter markers. A CAST specification can be used in most cases to assign attributes to a parameter marker. Try the request again.<br> Line: 869<br> Char: 13<br> Code: 0</p> <p>...and i've tried assigning a type to the parameters without success...and I'm not sure how the errror is advising me to use cast?</p> <p>The code for my GridView and SqlDataSource is as below...</p> <p>&nbsp;&nbsp;&nbsp; &lt;div id=&quot;Div1&quot; style=&quot;position: absolute; left:900px; top:50px; height:350px; width:650px;<br> &nbsp;&nbsp;&nbsp;&nbsp; font-family: Arial; font-size: 15px; color:black; overflow:auto&quot;&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:GridView ID=&quot;listserviceorders&quot; runat=&quot;server&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowSorting=&quot;True&quot; AutoGenerateColumns=&quot;False&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSourceID=&quot;SqlDataSource3&quot; AllowPaging=&quot;False&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HeaderStyle-Wrap=&quot;True&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridLines=&quot;None&quot; Visible=&quot;true&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Caption='&lt;table&nbsp; class=&quot;Freezing&quot; &gt;&lt;tr&gt;&lt;td&gt;Service Orders List&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;'<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CaptionAlign=&quot;Left&quot; SelectedRowStyle-BackColor=&quot;#CCFFCC&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnSelectedIndexChanged=&quot;showserviceorders&quot; &gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;AlternatingRowStyle BackColor=&quot;#CCCCFF&quot; Wrap=&quot;False&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Columns&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:CommandField ShowSelectButton=&quot;True&quot; ButtonType=&quot;Image&quot; SelectImageUrl=&quot;linkimage.gif&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField=&quot;sosono&quot; HeaderText=&quot;SO Number&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SortExpression=&quot;sosono&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField=&quot;sosadn&quot; HeaderText=&quot;Street Number&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SortExpression=&quot;sosadn&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField=&quot;sosadd&quot; HeaderText=&quot;Address&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SortExpression=&quot;sosadd&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField=&quot;sordte&quot; HeaderText=&quot;Request Date&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SortExpression=&quot;sordte&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField=&quot;sortdt&quot; HeaderText=&quot;Returned Date&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SortExpression=&quot;sortdt&quot; /&gt;</p> <p><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Columns&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle CssClass=&quot;Freezing&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:GridView&gt;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:SqlDataSource ID=&quot;SqlDataSource3&quot; runat=&quot;server&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ConnectionString=&quot;&lt;%&#36; ConnectionStrings:startpagegridview1ConnectionString %&gt;&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProviderName=&quot;&lt;%&#36; ConnectionStrings:startpagegridview1ConnectionString.ProviderName %&gt;&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SelectCommand=&quot;Select t1.sosono, t1.sosadn, t1.sosadd, case when t1.sortdt='01/01/0001' then NULL else t1.sortdt end as sortdt, case when t1.sordte='01/01/0001' then NULL else t1.sordte end as sordte from bllib400.blpso t1 where soddte='01/01/0001' and socode=? and sordte=? and sortdt= case when ? is null then '01/01/0001' else ? end&quot;&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SelectParameters&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:ControlParameter ControlID=&quot;sobydate2GridView1&quot; Name=&quot;?&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyName=&quot;SelectedDataKey.Values(SOCODE)&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:ControlParameter ControlID=&quot;sobydate2GridView1&quot; Name=&quot;?&quot; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyName=&quot;SelectedDataKey.Values(SORDTE)&quot; /&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:ControlParameter ControlID=&quot;sobydate2GridView1&quot; Name=&quot;?&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyName=&quot;SelectedDataKey.Values(SORTDT)&quot;/&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:ControlParameter ControlID=&quot;sobydate2GridView1&quot; Name=&quot;?&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyName=&quot;SelectedDataKey.Values(SORTDT)&quot;/&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SelectParameters&gt;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:SqlDataSource&gt;</p> <p>&nbsp;&nbsp;&nbsp; &lt;/div&gt;</p> <p><br> &nbsp;...My intent in the where clause being that when the SORTDT parameter comes from the &quot;parent&quot; control as NULL it is replace in the select with '01/01/0001'.</p> <p>Could someone kindly show me how to use the parameter markers correctly in the case?</p> <p>Any help greatly appreciated,</p> <p>Roscoe</p> 2012-04-03T18:36:23-04:004916957http://forums.asp.net/p/1788797/4916957.aspx/1?Re+using+parameter+markers+in+case+in+where+clause+of+SelectCommand+in+SqlDataSourceRe: using parameter markers in case in where clause of SelectCommand in SqlDataSource <p>Hello</p> <p>In the standard SqlDataSourceI don't think it's suitable for you to use &quot;?&quot;question markas a parameter tokenI mean you should use @parameterName insteadAnd your @parameterName should be the same defined in the SelectParameters</p> <p>Reguards</p> 2012-04-05T02:10:06-04:00