От DataTable в.NET C# к JSON

Я являюсь довольно новым в C# и.NET, но я сделал этот код для вызова хранимой процедуры, и я тогда хочу взять возвращенный DataTable и преобразовать его в JSON.

    SqlConnection con = new SqlConnection("connection string here");
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand("getDates", con);
    SqlParameter par = new SqlParameter("@PlaceID", SqlDbType.Int);
    par.Value = 42;
    da.SelectCommand = cmd;
    cmd.Parameters.Add(par);
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();

    con.Open();

    try{
        cmd.CommandType = CommandType.StoredProcedure;
        da.Fill(ds);
    }

Мой вопрос тогда - то, что лучший/самый простой путь состоит в том, чтобы сделать это? Пример был бы ярким, поскольку я все еще очень плохо знаком с этим.

14
задан cc0 22 February 2010 в 18:05
поделиться

1 ответ

Вместо таблицы данных вам следует использовать datareader. Ваш код неэффективен и трудночитаем - возможно, вы захотите сделать что-то вроде этого:

StringBuilder json = new StringBuilder();

using(SqlConnection cnn = new SqlConnection(your_connection_string)) 
{
    cnn.open();

    using(SqlCommand cmd = new SqlCommand("name_of_stored_procedure", cnn)) 
    {
        cmd.Paramters.AddWithValue("@Param", "value");

        using(SqlDataReader reader = cmd.ExecuteReader()) 
        {
            while(reader.Read()) 
            {
                json.AppendFormat("{{\"name\": \"{0}\"}}", reader["name"]);
            }
        }
    }

    cnn.close();
} 

вы можете использовать json.ToString, чтобы получить outpt

7
ответ дан 1 December 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: