2016-03-23 7 views
1

У меня есть опыт работы с PHP и проблема с ASP.NET WebAPI.asp.net web api с базой данных Mysql

У меня есть база данных MySQL и таблица, содержащая информацию о некоторых файлах. Теперь я хочу сделать «SELECT * FROM Files» и увидеть результат в XML.

Как я могу обработать результат запроса, который возвращается?

Это мой код в данный момент,

Модель:

namespace ProductsApp.Models 
{ 
    public class File 
    { 
     public int Id {get; set;} 
     public string Text {get; set;} 
    } 
} 

Контроллер:

public IEnumerable<File> Get() 
{ 
    try 
    { 
     command = conn.CreateCommand(); 
     command.CommandText = "SELECT * FROM Files"; 
     conn.Open(); 

     MySqlDataReader reader = command.ExecuteReader(); 
     while (reader.Read()) 
     { 
      //How to output the rows ???? 
     } 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 

    return null; // return the list 
} 
+0

код - текст. публикация ИЗОБРАЖЕНИЙ текста по существу бесполезно. –

+0

См. Ответ на http://stackoverflow.com/questions/2948255/xml-file-creation-using-xdocument-in-c-sharp. – Kevin

+0

Извините! Теперь его текст благодаря Джейсону Уоткинсу! – Webbie

ответ

1

Создание некоторых предположений о вашей таблице файлов, это как вы получаете данные

public IEnumerable<File> Get() 
{ 
    List<File> list = new List<File>(); 
    try 
    { 
     command = conn.CreateCommand(); 
     command.CommandText = "SELECT * FROM Files"; 
     conn.Open(); 

     using(MySqlDataReader reader = command.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       //How to output the rows ???? 
       int id = (int) reader["Id"];//Assuming column name is 'Id' and value if typeof(int) 
       string text = (string) reader["Text"];//Assuming column name is `Text` and typeof(string) 
       var file = new File {Id = id, Text = text}; 
       list.Add(file); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 

    return list; // return the list 
} 

Что касается xml, который является параметром форматирования, который должен быть разрешен по запросу.

Учитывая настройку по умолчанию для WebApi, когда клиент делает запросы на вызовы text/xml в качестве типа контента, результат должен быть проанализирован в xml и возвращен клиенту.

Если вы хотите заставить ответ всегда быть xml, вам нужно внести некоторые изменения в ответ. Один из способов - установить заголовок Content-Type перед возвратом результата.

Response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml;charset=utf-8"); 

Есть другие способы, которыми вы можете это сделать, и есть много ответов на SO, которые смогут вам показать.

+0

Спасибо! Im get en exception 403 запрещен Нужно ли мне указывать строку соединения i в файле web.config для решения этой проблемы? 403? – Webbie

+0

Код состояния 403: Запрещено бывает, если вы активировали аутентификацию для своей службы на контроллер глобально для api. Проверьте атрибут '[Authorize]' на вашем контроллере. Если вы хотите разрешить неавторизованным пользователям конкретное действие, вы можете использовать атрибут '[AllowAnonymous]' для действия – Nkosi

+0

, я установил [AllowAnonymous ] к моему методу и классу Controller и im get: ** ex.Message = «Невозможно подключиться к любому из указанных узлов MySQL». ** – Webbie

Смежные вопросы