Raghav Panalkar Ответов: 1

Возвращает значение json из WEBAPI


Ребята у меня есть sql запрос который возвращает строку Json в Asp.Net C# я не могу вернуть его, пожалуйста, помогите мне выбраться из него. и я не хочу использовать datareader.

Что я уже пробовал:

public Employee Get()
        {
            SqlDataReader reader = null;
            SqlConnection myConnection = new SqlConnection();
            myConnection.ConnectionString = @"Data Source=Demo\SQLEXPRESS;Initial Catalog=DB;User ID=xyz;Password=xyz123;Connection Timeout=1800;";

            SqlCommand sqlCmd = new SqlCommand();
            sqlCmd.CommandType = CommandType.Text;
            string jsonOutputParam = "@jsonOutput";
            //sqlCmd.CommandText = "Create_JSON_ProjectList";
            //sqlCmd.Parameters.Add(jsonOutputParam, SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
            sqlCmd.Connection = myConnection;
            myConnection.Open();
            string st = "select projectName from QryProjectWithDepartmentDetails ORDER BY projectName DESC FOR JSON PATH, WITHOUT_ARRAY_WRAPPER";
            //FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)";
            sqlCmd = new SqlCommand(st, myConnection);
            reader = sqlCmd.ExecuteReader();
            Employee emp = null;
            while (reader.Read())
            {
                emp = new Employee();
                emp.DepartmentNmae = reader["projectName"].ToString();
               
            }
            return emp;
            myConnection.Close();  
        }

1 Ответов

Рейтинг:
1

Richard Deeming

Ваш запрос вернет одну или несколько строк с одним строковым столбцом, имеющим автоматически сгенерированное имя:
Формат результатов запроса в формате JSON с сервера в формате JSON (для SQL сервера) | Майкрософт Документы[^]
Использование для вывода JSON в SQL Server и клиентских приложениях (SQL Server) | Майкрософт Документы[^]

using (var myConnection = new SqlConnection("...")
using (var sqlCmd = new SqlCommand("select projectName from QryProjectWithDepartmentDetails ORDER BY projectName DESC FOR JSON PATH, WITHOUT_ARRAY_WRAPPER", myConnection))
{
    myConnection.Open();
    
    var sb = new System.Text.StringBuilder();
    using (var reader = sqlCmd.ExecuteReader())
    {
        while (reader.Read())
        {
            sb.Append(reader.GetString(0));
        }
    }
    
    return new Employee { DepartmentName = sb.ToString() };
}


NB: Вам следует избегать жесткого кодирования строк подключения. Вместо этого прочтите их из конфигурационного файла:
Как читать строки подключения из файла Web.config | Microsoft Docs[^]