Home All Groups Group Topic Archive Search About
Author
30 Mar 2006 12:24 PM
milan.letic
Hello,
I have sql command like: "Select... Where myColumn = @myParameter"

Now, I can simply add parameter to the collection and filter data.

What if I want to return not filtered data, I mean to skip, avoid
executing this "myColumn = @myParameter"?!

Is this possible, or I have to change select command every time I don't
want filtered data?

Author
30 Mar 2006 1:25 PM
Marina Levit [MVP]
You would have to change your query.

You could also play tricks like always the where clause be like:

myColumn = @myParam Or 1 = @fakeParam

When you want to filter, you set @fakeParam to 2.  When you don't, you set
it to 1, and all rows will be returned.

<milan.le***@gmail.com> wrote in message
Show quote
news:1143721460.110382.150080@t31g2000cwb.googlegroups.com...
> Hello,
> I have sql command like: "Select... Where myColumn = @myParameter"
>
> Now, I can simply add parameter to the collection and filter data.
>
> What if I want to return not filtered data, I mean to skip, avoid
> executing this "myColumn = @myParameter"?!
>
> Is this possible, or I have to change select command every time I don't
> want filtered data?
>
Author
30 Mar 2006 1:28 PM
Marina Levit [MVP]
Actually you could also have your where clause be this:

myCol = @myParam OR @myParam IS NULL

That should do it.

<milan.le***@gmail.com> wrote in message
Show quote
news:1143721460.110382.150080@t31g2000cwb.googlegroups.com...
> Hello,
> I have sql command like: "Select... Where myColumn = @myParameter"
>
> Now, I can simply add parameter to the collection and filter data.
>
> What if I want to return not filtered data, I mean to skip, avoid
> executing this "myColumn = @myParameter"?!
>
> Is this possible, or I have to change select command every time I don't
> want filtered data?
>
Author
30 Mar 2006 3:05 PM
milan.letic
Thanks for answering. But...

This is my query...

SELECT
... tblStudent.BudzetSamofinansiranje,  ISNULL(tblUplate.Iznos, 0) AS
Uplate,  tblUplate.Datum...
FROM
tblStudent LEFT OUTER JOIN tblUplate ON tblStudent.JMB = tblUplate.JMB
WHERE
(tblUplate.Datum > @datumOd) AND (tblUplate.Datum < @datumDo) AND
(tblStudent.BudzetSamofinansiranje = @BudzetSamofinansiranje OR
@BudzetSamofinansiranje IS NULL)

As you can see, I added, as you suggested, "or @BudzetSamofinansiranje
IS NULL" and when I run query WITHOUT giving value to
@BudzetSamofinansiranje it returns nothing.

When I run query with this set to "Budzet", since this is one of
values, it return Error: "Application uses a value of the wrong type
for the current operation."
Author
30 Mar 2006 3:07 PM
Marina Levit [MVP]
You should give it a value of DBNull.Value (although I would think that is
the default for a parameter).

You did not show your code where you are actually setting up the parameters
and their values.

<milan.le***@gmail.com> wrote in message
Show quote
news:1143731124.026003.101400@e56g2000cwe.googlegroups.com...
> Thanks for answering. But...
>
> This is my query...
>
> SELECT
> ... tblStudent.BudzetSamofinansiranje,  ISNULL(tblUplate.Iznos, 0) AS
> Uplate,  tblUplate.Datum...
> FROM
> tblStudent LEFT OUTER JOIN tblUplate ON tblStudent.JMB = tblUplate.JMB
> WHERE
> (tblUplate.Datum > @datumOd) AND (tblUplate.Datum < @datumDo) AND
> (tblStudent.BudzetSamofinansiranje = @BudzetSamofinansiranje OR
> @BudzetSamofinansiranje IS NULL)
>
> As you can see, I added, as you suggested, "or @BudzetSamofinansiranje
> IS NULL" and when I run query WITHOUT giving value to
> @BudzetSamofinansiranje it returns nothing.
>
> When I run query with this set to "Budzet", since this is one of
> values, it return Error: "Application uses a value of the wrong type
> for the current operation."
>
Author
30 Mar 2006 3:23 PM
milan.letic
You mean to set "...OR  @BudzetSamofinansiranje = DBNull"? This reports
error.

This is my code for working in VB.NET with this parameter:

Me.SqlSelectCommand1.Parameters.Add(New
System.Data.SqlClient.SqlParameter("@BudzetSamofinansiranje",
System.Data.SqlDbType.VarChar, 50, "BudzetSamofinansiranje"))

....and later in code I asign a value to it...

SqlSelectCommand1.Parameters("@BudzetSamofinansiranje").Value =
"Budzet"

Please help.
Author
30 Mar 2006 3:45 PM
Marina Levit [MVP]
No, that is not what I meant.

I meant:  SqlSelectCommand1.Parameters("@BudzetSamofinansiranje").Value =
DBNull.Value

Also, I'm not sure why you are creating the SqlParameter using the overload
that takes the source column as the last parameter. I think you should take
it out.

Additionally, your query could be not returning the correct results because
of some of the other clauses in the WHERE clause.  You should test things in
the most simple way possible and eliminate all other factors. First get the
hang of using the parameters and getting the various results under different
conditions, then add in all the complexity once you have that working.

<milan.le***@gmail.com> wrote in message
Show quote
news:1143732208.518880.137080@g10g2000cwb.googlegroups.com...
> You mean to set "...OR  @BudzetSamofinansiranje = DBNull"? This reports
> error.
>
> This is my code for working in VB.NET with this parameter:
>
> Me.SqlSelectCommand1.Parameters.Add(New
> System.Data.SqlClient.SqlParameter("@BudzetSamofinansiranje",
> System.Data.SqlDbType.VarChar, 50, "BudzetSamofinansiranje"))
>
> ...and later in code I asign a value to it...
>
> SqlSelectCommand1.Parameters("@BudzetSamofinansiranje").Value =
> "Budzet"
>
> Please help.
>
Author
30 Mar 2006 4:13 PM
milan.letic
Well this will return all rows having no values. But I want query to
return ALL rows if @BudzetSamofinansiranje is not set to some value OR
only those that pass @BudzetSamofinansiranje = something.
Author
30 Mar 2006 4:25 PM
Marina Levit [MVP]
Ok, I hadn't considered that this column can contain NULLs, sorry.

In which case, refer to my first post. You would either have to change your
query, or you could do something like the fake parameter suggestion.
Although my suggestion would be to just change the query.

<milan.le***@gmail.com> wrote in message
Show quote
news:1143735228.481982.115280@u72g2000cwu.googlegroups.com...
> Well this will return all rows having no values. But I want query to
> return ALL rows if @BudzetSamofinansiranje is not set to some value OR
> only those that pass @BudzetSamofinansiranje = something.
>
Author
30 Mar 2006 5:00 PM
milan.letic
OK,
I'm really grateful. I'll be changing my query.

Thanks.

AddThis Social Bookmark Button