2014-04-30 122 views
0

我有AA表TBL_Person有五列:如何將一個表的特定列添加到數據集?

Person_ID, FirstName, LastName, Age, Location 

,我有它返回一個數據集的方法:

public DataSet GetPerson() 
{ 
    SqlCommand _select = new SqlCommand(); 
    _select.CommandText = "SP-GetAllPerson"; 
    _select.CommandType = System.Data.CommandType.StoredProcedure; 
    _select.Connection = Connection.GetConnection; 

    SqlDataAdapter _daPerson = new SqlDataAdapter(_select); 

    DataSet _personDs = new DataSet(); 
    _daCountry.Fill(_personDs, "[TBL_Person]"); 

    return _personDs; 
} 

此方法將返回列的數據集:

Person_ID, FirstName, LastName, Age, Location 

,但我想我的方法返回這些列的數據集:

FirstName, LastName, Age 

我該怎麼辦?

+0

也顯示你的SP代碼.. –

+1

什麼意思_「我怎樣才能添加一個表的特定列到數據集」_?相應地更改您的存儲過程。如果你想在C#中改變它,問題將是_「我怎樣才能從數據集的表中刪除**特定的列」_? –

+0

選擇要在數據集中顯示的列。 –

回答

1

如果您不想選擇所有列,請相應地更改存儲過程。

如果你想改變它在C#中,您可以通過table.Columns.Remove(name)刪除不需要的列:

public DataSet GetPerson(IEnumerable<string> wantedColumns) 
{ 
    using(SqlConnection connection = new SqlConnection("Connection-String")) 
    using (SqlDataAdapter _daPerson = new SqlDataAdapter("SP-GetAllPerson", connection)) 
    { 
     _daPerson.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure; 
     DataSet _personDs = new DataSet(); 
     _daPerson.Fill(_personDs, "TBL_Person"); 
     DataTable tblPersonIds = _personDs.Tables["TBL_Person"]; 
     var allColumns = tblPersonIds.Columns.Cast<DataColumn>().Select(c => c.ColumnName); 
     // remove unwanted columns: 
     foreach (string columnToRemove in allColumns.Except(wantedColumns)) 
      tblPersonIds.Columns.Remove(columnToRemove); 
     return _personDs; 
    } 
} 

你調用這個方法這個方法:

DataSet dsPerson = GetPerson(new[]{"FirstName", "LastName", "Age"}); 
1

如果我想知道我改變您的數據庫中的SP然後更改您的.cs文件中的GetPerson()方法,如下所示:

public DataSet GetPerson() 
{ 
    SqlCommand _select = new SqlCommand(); 
    _select.CommandText = "SP-GetAllPerson"; 
    _select.CommandType = System.Data.CommandType.StoredProcedure; 
    _select.Connection = Connection.GetConnection; 
    SqlDataAdapter _daPerson = new SqlDataAdapter(_select); 
    DataSet _personDs = new DataSet(); 
    _daPerson.Fill(_personDs, "[TBL_Person]"); 
    _personDs.Tables["TBL_Person"].Columns.Remove("Person_ID"); 
    _personDs.Tables["TBL_Person"].Columns.Remove("Location"); 
    return _personDs; 

} 

否則,您可以相應地更改您的存儲過程。

相關問題