views:

138

answers:

2

I have a dataview that contains a list of tables. I am reading in a list of values that I then want to apply as a filter to this dataview. The list of values is actually in the form of "table1, table2, table3". So I thought I would be able to use this as a filter on my dataview.

SqlOp.CommandText = "select name from dbo.sysobjects where xtype='u'";
SqlOp.ExecuteDataReader();
DataView dv = SqlOp.GetDataAsDataView();
SqlOp.CloseConnection();

Returns a list of all the tables in a dataview. Any help on how to filter this dataview?

Edit:
Not sure if I was completely clear in what I seek to accomplish. To clarify, I am trying to figure out how/if .RowFilter will help me in filtering this dataview. Something like:

dv.RowFilter = "name IN (table1, table2, table3)"    // I know this doesn't work
+1  A: 

You have to use like statement

"select name from dbo.sysobjects where xtype like 'u%'"

As well use Parameters collection

More Efficient Way of Adding Parameters to a SqlCommand .NET

volody
I'm not entirely sure how the Parameters collection is intended to help me out in this situation. However, what I am trying to figure out is how to use the dataview's 'RowFilter'.
dboarman
I did make the change to `like 'u%'`
dboarman
Parameters collection will help from SQL Injection http://stackoverflow.com/questions/512174/non-web-sql-injection
volody
+1  A: 

I figured out the .RowFilter issue:

dv.RowFilter = "name IN ('table1', 'table2', 'table3')    // missing the single quote surrounding table names
dboarman