Hallo zusammen,
aus Access heraus übergebe ich meinem Service per OleDBConnection zu Testzwecken ein Table, das x verschiedene Keys enthält. Formatiert sind diese Keys in Access als Text.
Beispiel:
Key1: 0001
Im Testlauf ist mir aufgefallen (und danach, im Export zu Excel), dass mein Service keinen dieser Keys finden kann, die in XMLs hinterlegt sind.
Als ich mir dann einfach die komplette DataTable in Access ausgegeben habe, sah ich, dass das DataTable die Leading Zeros wegschneidet - trotz Textformatierung.
Importiert wird die Access-Tabelle so:
System.Data.DataTable results = new System.Data.DataTable();
using (OleDbConnection conn = new OleDbConnection(connString))
{
OleDbCommand cmd = new OleDbCommand("SELECT * FROM GetRelevantFactors", conn);
Nach meinen Recherchen gibt es mit der DataTable keine Möglichkeit, die Leading Zeros zu behalten - oder doch nicht?
Manuell die Zeros hinzuzufügen ist auch nicht möglich, da nicht alle Keys mit einer 0 beginnen.
Würd mich über Tips freuen, danke!
Ganz kann ich dir da nicht folgen, so lange es immer ein String ist sollten die führenden nullen nicht Abgeschnitten werden. Wenn du es Irgendwo in eine Zahl (int) konvertierst kann das natürlich Passieren.
Führende Nullen hinzuzufügen ist aber kein Problem.
StackOverflow:How can I format a number into a string with leading zeros?
Sollte man mal gelesen haben:
Das Feld von der Table in Access ist zu 100% als Text formatiert
Nullen manuell hinzufügen ist auch keine Option 🙁
Probiere mal den Datentyp beim DataTabel auf String zu setzen.
stackoverflow:How To Change DataType of a DataColumn in a DataTable?
Ansonsten schau mal mit dem Debugger wo sich der Wert von 0001 in 1 ändert.
Sollte man mal gelesen haben:
Okay, ich muss zurückrudern. NUR der Export zu Excel war fehlerhaft - der Import in die DataTable war korrekt... sorry.