Получить данные из базы данных MySQL и отобразить их в виде списка

Я пытаюсь извлечь данные из базы данных MySQL, размещенной в Microsoft Azure, и отобразить ее в виде списка (во фрагменте).
Я следовал указаниям этого поста:

Извлечение данных из Mysql DB с помощью PHP и JSON в Xamarin Android C # .NET

Но я все еще получаю пустой список. Я думаю, что ошибка происходит из-за моего PHP, так как когда я запускаю свой PHP-скрипт, я ничего не получаю в своем браузере.
Вот мой код:

PHP:

 <?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$servername = "eu-cdbr-azure-north-e.cloudapp.net";
$username = "****************";
$password = "**********";

try
{
$conn = new PDO("mysql:host=$servername;dbname=******",$username,        $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}

$query = $conn->prepare("SELECT FROM contact_info");
$rows = array();while($row = $query->fetch(PDO::FETCH_ASSOC))
{
$rows['contact_name'][]= $row;
$rows['contact_email'][]= $row;
$rows['contact_password'][]= $row;
$rows['contact_trip'][]=$row;
}

header("Content-type: application/json; charset=utf-8");

echo json_encode($rows);

C # (фрагмент):

    public class Customers : Android.Support.V4.App.Fragment
{
List<people> mClient = new List<people>();
ListView client;
private WebClient webClient;
private Uri mUrl;
private BaseAdapter<people> mAdapter;

public override void OnActivityCreated(Bundle savedInstanceState)
{
base.OnActivityCreated(savedInstanceState);
client = View.FindViewById<ListView>(Resource.Id.list);

webClient = new WebClient();
mUrl = new Uri("http://*********.azurewebsites.net/admin.php");
webClient.DownloadDataAsync(mUrl);
webClient.DownloadDataCompleted += webClient_DownloadDataCompleted;

MyListViewAdapter adapter = new MyListViewAdapter(this.Activity, mClient);
client.Adapter = adapter;
}

private void webClient_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
Activity.RunOnUiThread(() =>
{
string json = Encoding.UTF8.GetString(e.Result);
mClient = JsonConvert.DeserializeObject<List<people>>(json);
mAdapter = new MyListViewAdapter(this.Activity, mClient);
client.Adapter = mAdapter;
});
}

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{

var view = inflater.Inflate(Resource.Layout.Frag1Layout, container, false);
return view;
}public override string ToString()
{
return "Customers";
}
}

C # (адаптер):

   using System;
using Android.App;
using Android.Content;
using Android.Widget;
using Android.Runtime;
using System.Collections.Generic;
using Android.Views;
using Android.OS;

namespace Tonio_Pick_Me_Up.Droid
{
class MyListViewAdapter : BaseAdapter<people>
{
public List<people> mItems;
private Context mContext;

public MyListViewAdapter(Context context, List<people> items)
{
mItems = items;
mContext = context;
}

public override int Count
{
get { return mItems.Count; }
}

public override long GetItemId(int position)
{
return position;
}

public override people this[int position]
{
get { return mItems[position]; }
}

public override View GetView(int position, View convertView, ViewGroup parent)
{
View row = convertView;

if (row == null)
{
row = LayoutInflater.From(mContext).Inflate(Resource.Layout.contactlist, null, false);
}

TextView ContactName = row.FindViewById<TextView>(Resource.Id.ContactName);
ContactName.Text = mItems[position].Contact_Name;

TextView ContactEmail = row.FindViewById<TextView>(Resource.Id.ContactEmail);
ContactName.Text = mItems[position].Contact_Email;

TextView ContactNextTrip = row.FindViewById<TextView>(Resource.Id.ContactNextTrip);
ContactName.Text = mItems[position].Contact_Email;

return row;
}
}
}C#(people class):

using System;
using Newtonsoft.Json;

namespace Tonio_Pick_Me_Up.Droid
{

public class people
{
[JsonProperty("Contact_Name")]
public string Contact_Name { get; set;}

[JsonProperty("Contact_Email")]
public string Contact_Email { get; set; }

[JsonProperty("Contact_Trip")]
public string Contact_Trip { get; set; }

}
}

Надеюсь, ты сможешь помочь,
заранее спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]