convert from SqlDataReader to JSON

后端 未结 13 1199
忘掉有多难
忘掉有多难 2020-11-27 16:26
public string toJSON(SqlDataReader o)
{
    StringBuilder s = new StringBuilder();
    s.Append(\"[\");
    if (o.HasRows)
        while (o.Read())
            s.App         


        
13条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-27 16:58

    With Cinchoo ETL - an open source library, you can export SqlDataReader to JSON easily with few lines of code

    string connectionstring = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Northwind;Integrated Security=True";
    StringBuilder sb = new StringBuilder();
    
    using (var conn = new SqlConnection(connectionstring))
    {
        conn.Open();
        var comm = new SqlCommand("SELECT top 2 * FROM Customers", conn);
    
        using (var parser = new ChoJSONWriter(sb))
            parser.Write(comm.ExecuteReader());
    }
    
    Console.WriteLine(sb.ToString());
    

    Output:

    [
     {
      "CustomerID": "ALFKI",
      "CompanyName": "Alfreds Futterkiste",
      "ContactName": "Maria Anders",
      "ContactTitle": "Sales Representative",
      "Address": "Obere Str. 57",
      "City": "Berlin",
      "Region": {},
      "PostalCode": "12209",
      "Country": "Germany",
      "Phone": "030-0074321",
      "Fax": "030-0076545"
     },
     {
      "CustomerID": "ANATR",
      "CompanyName": "Ana Trujillo Emparedados y helados",
      "ContactName": "Ana Trujillo",
      "ContactTitle": "Owner",
      "Address": "Avda. de la Constitución 2222",
      "City": "México D.F.",
      "Region": {},
      "PostalCode": "05021",
      "Country": "Mexico",
      "Phone": "(5) 555-4729",
      "Fax": "(5) 555-3745"
     }
    ]
    

提交回复
热议问题