2016-03-23 11 views
1

私はPHPで背景を持ち、ASP.NET webAPIを試している間に問題にぶつかります。mysqlデータベースを持つasp.net web api

私は、いくつかのファイル情報を含む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にしたい場合は、応答にいくつかの変更を加える必要があります。 1つの方法は、結果を返す前にContent-Typeヘッダーを設定することです。

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

あなたがこれを行うことができますし、あなたを見ることができるようになりますように多くの答えがある他の方法があります。

+0

ありがとうございます! 私は例外403を禁止しています これを解決するためにweb.configに接続文字列を指定する必要がありますか? – Webbie

+0

ステータスコード403:サービスで認証が有効になっている場合、コントローラの '[Authorize]'属性を確認してください。特定のアクションで権限のないユーザを許可したい場合は、アクションの[AllowAnonymous]属性を使用することができます – Nkosi

+0

[AllowAnonymous ]を私のメソッドとControllerクラスに取得しています:** ex.Message = "指定されたMySQLホストに接続できません" ** – Webbie

関連する問題