C # DataRow.ToSsortingng () formate automatiquement la string quand elle ne devrait pas

J'ai programmé pendant un certain time, mais je n'ai jamais vu cela arriver alors je suis un peu perplexe quant à ce qui se passe. Ce que je fais, c'est que j'exécute un SP sur une database et juste pour tester sa sortie avant de l'utiliser, je place les lignes dans des strings délimitées par des tuyaux. Pour une raison quelconque, lorsque je définis une textbox à ces résultats, il met en forme les dates de SQL Server en variables DateTime et 1,99 décimales en 1,99 décimales.

Aussi juste une note: Je ne veux pas accéder aux données de la colonne en appelant des colonnes spécifiques par le nom de la colonne. Je veux faire en sorte que je puisse changer et append des colonnes au SP dans la database et cela continuerait à fonctionner et ramener toutes les colonnes du SP.

De plus, les secondes sur le dernier datetime ne sont pas les mêmes, car les requêtes ont été exécutées à des moments différents, donc pas besoin de s'inquiéter à ce sujet.

Quelqu'un a une idée de ce qui se passe ici?

Voici le code qui récupère datatables et crée les strings délimitées par des tuyaux:

private ssortingng GetHourlySales() { SsortingngBuilder output = new SsortingngBuilder(); DataTable tblData = new DataTable(); using (SqlConnection conn = new SqlConnection(GetConnectionSsortingng())) { ssortingng sql = "EXEC [dbo].[ryan_GetSalesSummary] 0"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { try { conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); tblData.Load(dr, LoadOption.Upsert); conn.Close(); } catch (Exception) { } } } foreach (DataRow row in tblData.Rows) { for (int i = 0; i < tblData.Columns.Count; i++) { if (i > 0) output.Append("|"); if (i == tblData.Columns.Count - 1) output.AppendLine(row[i].ToSsortingng()); else output.Append(row[i].ToSsortingng()); } } if (tblData.Rows.Count > 0) return output.ToSsortingng(); else return null; } 

Voici la sortie qu'il crée: formatage incorrect

Voici ce que je reçois directement de SQL Server: mise en forme correcte

Votre datatable ne se compose pas des strings que vous voyez lorsque vous interrogez votre database, elle est tapée, ce qui signifie que vous avez des types de données réels des colonnes que vous avez sélectionnées. Donc DateTime s sera formaté comme DateTime s et Decimal s comme Decimal s. Ce que vous voyez est le comportement par défaut.