Я являюсь довольно новым в 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);
}
Мой вопрос тогда - то, что лучший/самый простой путь состоит в том, чтобы сделать это? Пример был бы ярким, поскольку я все еще очень плохо знаком с этим.
Вместо таблицы данных вам следует использовать 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