2012-03-14 76 views
2

我該如何使用DataTable的Select方法來獲取以'M'開頭的UserNames。讓我們假設UserNameTextBox有一個字符串中號DataTable Select

oDataTable.Select("UserName = '" + UserNameTextBox.Text + "'"); 
DataView oDataView = oDataTable.DefaultView; 
oDataView.Sort = "UserName"; 
UserGridView.DataSource = oDataView; 
UserGridView.DataBind(); 

,當我輸入全名到文本框,我確信DataTable包含,它列出一切不只是我所輸入的。有人能幫助我嗎?

回答

2

你可以既可以使用DataTable.SelectDatView.RowFilter方法或LINQ-to-DataSet

LINQ:

var tblFiltered = (from row in oDataTable.AsEnumerable() 
        where row.Field<String>("UserName").Contains(UserNameTextBox.Text) 
        select row).CopyToDataTable(); 

ADO.NET(DataTable.Select):

DataRow[] filteredRows = oDataTable.Select("UserName LIKE '%" + UserNameTextBox.Text + "%'"); 

ADO.NET(DataView.RowFilter):

oDataView.RowFilter = "UserName LIKE '%" + UserNameTextBox.Text + "%'"; 
1

的選擇方法返回一個DataRow集合,但不會改變數據視圖,您可以創建一個數據視圖,並設置過濾字符串的數據視圖的RowFilter的,請點擊此處查看:http://msdn.microsoft.com/en-us/library/system.data.dataview.rowfilter.aspx

DataView view = new DataView(); 

view.Table = oDataTable; 
view.RowFilter = "UserName = '" + UserNameTextBox.Text + "'"; 
UserGridView.DataSource = view; 
UserGridView.DataBind();