Angenommen, ich habe eine SQLite-Datenbank. Diese Datenbank hat eine Tabelle namens main mit 5 Spalten (id, c1, c2, c3, c4).C# undefinierte Menge an Objekt für den Datentyp (wie params [])
Kunde ruft executeQuery die wie folgt aussieht:
public Dictionary<int, Tuple<string, string, string, string>> executeSql(string statement) {
var ret = new Dictionary<int, Tuple<string, string, string, string>>;
var dbcmd = conn.CreateCommand();
for(int i = 0; i < Entries; i++) {
dbcmd.CommandText = statement.Replace("i", i.ToString());
var reader = dbcmd.ExecuteReader();
//.... Evalulate query....
ret.Add(); //add to Dic
}
}
Ich habe keine Ahnung, wie viele Spalten der Client in seiner Erklärung verlangt. Gibt es einen Typ, mit dem ich in einem solchen Szenario richtig arbeiten kann? Was ich will, ist etw wie folgt aus:
Dictionary<int, Tuple<params[] string>>
, die mich mit einer variablen Menge von Strings liefern würde in die Tuple hinzugefügt werden.
Wenn es nichts dergleichen gibt, gibt es einen sauberen Weg, um dies zu lösen, anstatt ein Array zu verwenden, das leere Einträge haben wird (wie es Schleifen brechen wird und schrecklich zu lesen und zu halten ist) und ich möchte nicht müssen Verwenden Sie 90% des gleichen Codes nur für jeden einzelnen Fall (aka executeSqlOne(), executeSqlTwo() usw.), da dies den Code stark aufblähen würde.
Können Sie einige Beispiele für verschiedene Aussagen geben? Ich denke, Einträge ist die Anzahl der Spalten, nach denen der Kunde fragt. Ist Ihre Tabellenstruktur veränderbar? Was wäre, wenn Sie die Tabelle in ID, Parameternummer, Wert ändern würden? Dadurch erhalten Sie einen Wert für jede ID-Parameter-Kombination, die sql würde immer gleich aussehen und Sie können das Ergebnis zu Ihrem hinzufügen 'Dictionary>' –
Ja-Wörterbuch> löst alles. Ich werde mich ausruhen, jetzt ist mein Geist scheinbar überarbeitet. –
fasa123