Dice, ho una tabella dei dipendenti, con {id, nome, unità, ecc.} qual è il modo migliore per ottenere questi dati se uso frequentemente questi dati, la mia prima opzione è di interrogarli dal database quando necessario, qualcosa di simile,
public static List<Employee> GetEmployees(string unitID)
{
List<Employee> employees = new List<Employee>();
using (SqlConnection sqlConn = new SqlConnection(string.Format(constring, UserID, Password, Server, Database)))
{
using (SqlCommand sqlComm = new SqlCommand(string.Format("SELECT ID, Name FROM Employee WHERE UnitID = {0} ORDER BY Name", unitID), sqlConn))
{
try
{
sqlConn.Open();
using (SqlDataReader sqlReader = sqlComm.ExecuteReader())
{
if (sqlReader.HasRows)
{
while (sqlReader.Read())
{
Employee employee = new Employee()
{
ID= sqlReader["ID"].ToString(),
Name = StaticField.id_ID.TextInfo.ToTitleCase(sqlReader["Name"].ToString())
};
employees.Add(employee);
}
}
}
}
catch (Exception ex)
{
MessageBoxEx.Show(ex.Message, "GetEmployees Error", MessageBoxButton.OK, MessageBoxImage.Stop);
}
return employees;
}
}
}
Oppure seconda opzione, crea DataSet, quindi aggiungi la tabella dei dipendenti come TableAdapter sul set di dati.
var employeeListTableAdapter = new DataSetEmployeeTableAdapters.EmployeeListTableAdapter();
employeeListTableAdapter.ClearBeforeFill = true;
employeeListTableAdapter.Fill(dataset.EmployeeList);
quindi quando ho bisogno di filtrare la riga, uso solo qualcosa di simile.
DataView data = dataset.EmployeeList.DefaultView;
data.RowFilter = string.Format("Unit = {0}", unitID);