2010-05-25 70 views
2

我有一個包含表列表的數據視圖。我正在閱讀一系列值,然後我將其作爲過濾器應用於此數據視圖。值的列表實際上是「table1,table2,table3」的形式。所以我想我可以在我的數據視圖中使用它作爲過濾器。如何篩選數據視圖

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

返回數據視圖中所有表的列表。有關如何篩選此數據視圖的幫助?

編輯:
不知道我是否完全清楚我的目標是什麼。爲了澄清,我想弄清楚/如果.RowFilter將幫助我過濾這個數據視圖。喜歡的東西:

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

回答

1

我想通了.RowFilter問題:

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

你不得不用這樣的語句

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

除了使用參數集合

More Efficient Way of Adding Parameters to a SqlCommand .NET

+0

我不完全確定參數集合是如何幫助我解決這種情況的。但是,我想弄清楚的是如何使用dataview的'RowFilter'。 – IAbstract 2010-05-25 15:14:26

+0

我確實改變了'like'u''' – IAbstract 2010-05-25 15:19:39

+0

參數集合將有助於SQL注入http://stackoverflow.com/questions/512174/non-web-sql-injection – volody 2010-05-25 15:36:42