Witam serdecznie,
Chciałem przetestować sobie dostęp do bazy danych w aplikacjach pod Windows Phone. Wiem, że nie można odwoływać się bezpośrednio do bazy danych, dlatego do tego celu utworzyłem próbną usługę sieciową za pomocą WCFa. Poniżej kod:
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;
}
}
Następnie utworzyłem drugi projekt (Windows Phone Silverlight Application) i dodałem do niego service reference, którym była oczywiście moja wcześniej utworzona testowa usługa. Ma to działać tak, że po naciśnięciu przycisku ma się pobrać z bazy i wyświetlić nazwa handlowca zgodnie z podaną na sztywno kwerendą. Poniżej kod:
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 to TextBox
}
else
{
tbHandlowiec.Text = "Error!";
}
}
// button
private void btnPobierzHandlowca_Click(object sender, RoutedEventArgs e)
{
proxy.PobierzHandlowcaAsync();
}
}
Po nacisnięciu przyciku, po około 5-6 sekundach następuje błąd: System.ServiceModel.CommunicationException' occurred in System.ServiceModel.ni.dll but was not handled in user code. Czy ktoś jest w stanie powiedzieć mi co tutaj jest źle ?