Guten morgen zusammen,
wie kann man ein DataTable Objekt in ein Byte-Array umwandeln und dieses dann an den Client senden und dort wieder vom Byte-Array als DataTable umwandeln?
Oder gibt es hierfür eine andere Lösung?
DataTable wird mit Inhalten aus der Datenbank gefüllt und wird dann vom Client in eine comboBox eingelesen.
Also es gibt die 2 Spalten Name und ID.
Gerne bin ich auch für andere Lösungen offen. Dachte auch schon an ein Mehrdimensionales Array.
Ich hatte auch schon den Gedanke das ganze per XML beim Client-Start an diesen zu senden und dort Local einlesen, finde ich aber nicht so eine saubere Lösung.
Edit:
Habe folgende Funktion im Netz gefunden
private byte[] ConvertDataSetToByteArray(DataSet dataSet)
{
byte[] binaryDataResult = null;
using (MemoryStream memStream = new MemoryStream())
{
BinaryFormatter brFormatter = new BinaryFormatter();
dataSet.RemotingFormat = SerializationFormat.Binary;
brFormatter.Serialize(memStream, dataSet);
binaryDataResult = memStream.ToArray();
}
return binaryDataResult;
}
Ausprobiert habe ich es noch nicht, da ich dann auch nicht wüsste, wie ich den ganzen Spaß wieder zurückwandeln kann.
--
Vielen Dank
LG
Kevin
Ist der Client denn auch in C# (bzw. einer .NET-Sprache) geschrieben? Wenn ja, dann einfach die Deserialize-Methode dort benutzen.
Statt Binär ginge natürlich auch XML (ist nur von der Datenmenge dann größer).
Hallo,
ja der Client ist auch in C# geschrieben.
Hat XML gegenüber Binär irgendwelche Vorteile? Wenn nein, würde ich natürlich Binär nehmen.
Edit:
Hab es jetzt mit DataTable gemacht und Funktioniert wunderbar, danke für die Hilfe! 👍 😁
--
Vielen Dank
LG
Kevin
Wenn du beide Seiten schreibst, ist diese und die Frage mit den Sockets sowas von NIH-Syndrom.
Stat das selber irgendwie hinzufrickeln häätest du dir anschauen können wie man so etwas eigentlich macht, also WCF, WebApi oder NancyFx und co.