Ich erstelle eine Seite, die den neuesten Datensatz einer Audit-Tabelle in unserer Datenbank anzeigen wird, die ich mit der folgenden Abfrage abrufen kann.Füllen C# Klasse von einfachen SQL-Abfrage
select top 1 StartDateTime, EndDateTime, Status
from Audit
order by StartDateTime desc
Da diese Informationen werden mehrmals während meiner gesamten Anwendung verwendet werden, wollte ich eine Klasse erstellen, die in der Zeile lesen würden und füllen Sie ein „Statistik“ Objekt, das ich von jeder Seite nennen könnte.
Meine Klasse derzeit sieht aus wie
public class Stats
{
public DateTime startDate() {
string mySQL;
mySQL = "select top 1 StartDateTime from Audit order by StartDateTime desc";
string myConnectionString;
myConnectionString = "databaseCS";
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[myConnectionString].ConnectionString);
SqlCommand myCommand = new SqlCommand(mySQL, myConnection);
using (myConnection)
{
myConnection.Open();
DateTime startDate = Convert.ToDateTime(myCommand.ExecuteScalar());
return startDate;
}
}
public DateTime endDate()
{
string mySQL;
mySQL = "select top 1 EndDateTime from Audit order by StartDateTime desc";
string myConnectionString;
myConnectionString = "databaseCS";
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[myConnectionString].ConnectionString);
SqlCommand myCommand = new SqlCommand(mySQL, myConnection);
using (myConnection)
{
myConnection.Open();
DateTime endDate = Convert.ToDateTime(myCommand.ExecuteScalar());
return endDate;
}
}
public string status() {
string mySQL;
mySQL = "select top 1 EndDateTime from Audit order by StartDateTime desc";
string myConnectionString;
myConnectionString = "databaseCS";
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[myConnectionString].ConnectionString);
SqlCommand myCommand = new SqlCommand(mySQL, myConnection);
using (myConnection)
{
myConnection.Open();
string status = Convert.ToString(myCommand.ExecuteScalar());
return status;
}
}
Die Seiten, die die Daten zeigen werden wird öfter als nicht mindestens zwei dieser Statistiken daher mehrere Datenbankabfragen, die ich will werden die Anzeige zu vermeiden.
Gibt es eine Möglichkeit, meinen Code zu ändern, um die Datenbank einmal abzufragen?
Vielen Dank
Wie werden Sie die Datenbank abfragen? Sie müssen etwas zeigen oder wir raten. – DavidG
Entschuldigung, nur Bearbeitung jetzt –
'" würde erfordern, dass die Datenbank mehrmals abgefragt wird "' - Warum? Sie haben eine Datenbankabfrage in Ihrer Frage, die die gewünschten Daten zurückgibt, nicht wahr? Führen Sie diese Abfrage einmal aus und Sie haben die gewünschten Daten. Was genau ist das Problem hier? Fragen Sie nur, wie Sie eine Datenbank in C# verwenden? – David