2017-12-15 3 views
1

Dies ist mein Code, um Daten von Datenreader zurückgeben, aber ich möchte es json Ausgabe anstelle von Spalte Ergebnis zurückgeben. Was sollte ich ändern, um JSON myReader zurückzugeben?Datenleser Rückgabe in JSON

if (key.Equals("1")) 
     { 
      Console.WriteLine("Enter Command to retrieve data"); 
      String sql = Console.ReadLine(); 
      if (String.IsNullOrEmpty(sql)) 
      { 
       Console.WriteLine("invaild command"); 
       return; 
      } 
      try 
      { 
       SqlDataReader datareader = sh.ExecuteReader(sql, conn); 
       if (datareader.Read()) 
       { 
        while (datareader.Read()) 
        { 
         for (int index = 0; index < datareader.FieldCount; index++) 
         { 
          Console.WriteLine(datareader.GetValue(index)); 
         } 
        } 
       } 
       else 
       { 
        Console.WriteLine("unable to find the data"); 
       } 
       datareader.Close(); 
      } 
+0

Fügen Sie das Tag für die SQL Server-Version hinzu, die Sie verwenden. –

Antwort

0

Ihrer ausgewählten Abfrage, am Ende fügen Sie FOR JSON PATH hinzu. Gefällt Ihnen dieses

SELECT TOP 2 
    SalesOrderNumber, 
    OrderDate, 
    (SELECT UnitPrice, OrderQty 
     FROM Sales.SalesOrderDetail AS D 
     WHERE H.SalesOrderID = D.SalesOrderID 
    FOR JSON PATH) AS D 
FROM Sales.SalesOrderHeader AS H 
FOR JSON PATH 

Ergebnis Ohne JSON PATH

enter image description here

Ergebnis mit JSON PATH

enter image description here

Sehen Sie ein anderes Beispiel

enter image description here

Verweise MSDN Article for more details