Я пытаюсь подключиться к базе данных MySQL на своем мобильном устройстве с ОС Windows Phone 8.1. Я использую WCF, чтобы создать это подключение (только для тестирования):Подключение к MySQL в Windows Phone 8.1
public class Service1 : IService1
{
public string PobierzHandlowca()
{
String sql = "SELECT nazwa FROM Handlowcy WHERE id_handlowcy=1";
MySqlConnection connection = new MySqlConnection("Server=localhost; Database=msoh; Uid=root; Pwd=;");
try
{
connection.Open();
MySqlCommand command = new MySqlCommand(sql, connection);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
return (string)reader["nazwa"];
}
}
catch { }
finally
{
connection.Dispose();
}
return null;
}
}
Тогда в моем приложении Windows Phone Silverlight Я добавить ссылку на службу. И тогда я просто сделать это:
public partial class MainPage : PhoneApplicationPage
{
ServiceReference1.Service1Client proxy;
public MainPage()
{
InitializeComponent();
proxy = new Service1Client();
proxy.PobierzHandlowcaCompleted += proxy_PobierzHandlowcaCompleted;
}
void proxy_PobierzHandlowcaCompleted(object sender, PobierzHandlowcaCompletedEventArgs e)
{
if (e.Result != null)
{
tbHandlowiec.Text = e.Result; // tbHandlowiec is a TextBox control
}
else
{
tbHandlowiec.Text = "Error!";
}
}
// button
private void btnPobierzHandlowca_Click(object sender, RoutedEventArgs e)
{
proxy.PobierzHandlowcaAsync();
}
}
При нажатии на эту кнопку, через некоторое время я получаю эту ошибку - исключение типа «System.ServiceModel.CommunicationException» произошло в System.ServiceModel.ni.dll но не обрабатывался в коде пользователя
Что не так с этим кодом? Что мне не хватает?
Никогда не рекомендуется иметь пустой блок catch. Если что-то не удается на сервере, у вас нет способа узнать, что случилось. – Steve
Определите время, это может быть тайм-аут, если это достаточно долго, а это значит, что вы на самом деле никогда не нажимаете на сервис. –
@ Mr.B - Это около 5 секунд. – XardasLord