Ich habe eine Suchmethode namens "UniversalClientSearch" und befindet sich in einer Datahandler-Klasse. Die Methode sucht nach Daten in einer Tabelle, abhängig davon, welche Spalte und was in dieser Spalte gesucht wird. Anschließend muss die Methode eine Tabellenvariable zurückgeben, die in einer Datagridview auf einem meiner Formulare verwendet werden soll.Verwenden von LinQ to SQL zum Zurückgeben der Tabelle
Ich habe eine LinQ to SQL-Anweisung erstellt, um die Datenzeilen zu erhalten, die ich möchte, und in einem var ReturnSearchQuery gespeichert, aber ich weiß nicht, wie diese Abfrage in eine Variable der Tabelle zu konvertieren Tabellenname ist tbclient.
//Fields
private DataAccessDataContext db;
//Constructor
public Datahandler()
{
this.db = new DataAccessDataContext();
}
//Method
public Table<tbClient> UniversalClientSearch(string SearchType, string SearchParameter)
{
//This is just here to initialize the variable so it can be changed in the switch
var ReturnSearchQuery = from Clients in db.tbClients
select Clients;
//Filters Query based on what column to search
switch (SearchType)
{
case "Client_ID":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Client_ID == int.Parse(SearchParameter)
select Clients;
break;
case "Client_Name":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Client_Name.Contains(SearchParameter)
select Clients;
break;
case "Client_Address":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Client_Address.Contains(SearchParameter)
select Clients;
break;
case "Contact_Number":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Contact_Number.Contains(SearchParameter)
select Clients;
break;
case "Contact_Email":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Contact_Email.Contains(SearchParameter)
select Clients;
break;
case "Client_Type":
ReturnSearchQuery = from Clients in db.tbClients
where Clients.Client_Type == SearchParameter
select Clients;
break;
}
//Make new table to be returned later
Table<tbClient> ReturnClientsTable = new Table<tbClient>();
foreach (var item in ReturnSearchQuery)
{
//Query has to be converted to Table<tbClient>
}
//Table return to be used in datagridview
return ReturnClientsTable;
}
Danke, ich werde übernehmen diese in mein Projekt! Ich habe einen Workaround dafür, während ich die Antwort nicht erhalten konnte, die den Rückgabetyp für die ** UniversalClientSearch ** -Methode auf dynamische ändern und dann nur die ** ReturnSearchQuery ** zurückgeben sollte. –