Es folgt der Pseudocode:
%Vor%Wenn ich oben 100 Spalten habe, muss es zweimal wiederholt werden; Was ich will, ist einige CommonMethodToFillRowData (); Aber welche Art von Parameter verwende ich für eine solche Methode?
%Vor%Direkt aus MSDN doco auf SqlCeUpdatableRecord Klasse zitieren: - & gt; Stellt eine Zeile mit aktualisierbaren Werten aus der Datenquelle dar. Ein SqlCeResultSet-Objekt enthält ein oder mehrere UpdatableRecords.
Wenn das der Fall ist, warum kann ich keinen direkten Zugriff auf ein einzelnes UpdatableRecord innerhalb von SqlCeResultSet haben, sobald ich den Cursor über einen Seek ()?
positioniereWenn das möglich wäre, könnte ich Folgendes tun:
%Vor% Erstellen Sie ein Wrapper-Objekt, das entweder SqlCeResultSet
oder SqlCeUpdatableRecord
entsprechend darstellen kann. Schreiben Sie dann Ihren "Speichern" -Code einmal und lassen Sie ihn entweder als Update oder als Einfügung anwenden, abhängig davon, ob der Datensatz bereits existiert.
Warnung: Dies ist Code nicht getestet.
%Vor% Hinweis: Wenn Sie .NET 4 nicht verwenden, müssen Sie die optionalen Parameter entfernen. Sie können auch% SetX()
Methoden zu SqlCeWrapper
nach Ihren Bedürfnissen hinzufügen.
Ich bin mir nicht sicher, was Sie zu tun versuchen, und ich bin mir nicht sicher über diese Komponenten, daher gibt es wahrscheinlich einen effizienteren Ansatz. Aber laut MSDN ist SqlCeResultSet ein SqlCeDataReader , was ein DbDataReader , das IDataRecord ... und SqlCeUpdateableRecord implementiert auch IDataRecord .
Also, funktioniert das?
%Vor%Es ist ekelhaft und die Leistung wird nicht gut sein, aber es könnte tun, was Sie suchen, wenn Sie nur die Zeile ausblenden möchten, die in einen Codeabschnitt gefüllt wird.
Tags und Links .net c# sql-server-ce