C# a połączenie z hostem 000webhost.com

0

Witam!

Mam problem z połączeniem z bazą danych znajdującą się na hoście 000webhost.com,


using MySql.Data.MySqlClient;
using System.Collections.Generic;
using System.Windows;


namespace PUM_TeleMed_Projekt.Classes
{
    class DBConnect
    {

        private MySqlConnection connection;
        public DBConnect()
        {
            Initialize();
        }

        private void Initialize()
        {
            string myConnectionString;
            myConnectionString = "server=ip;uid=username;pwd=password;database=dbname;";

           
                connection = new MySqlConnection(myConnectionString);      
        }

W dalszej części dokonuje zapytania, a otrzymane wyniki zapisuję do listy.

public List<string>[] Select()
        {
            string query = "SELECT * FROM Pacjenci";

            List<string>[] list = new List<string>[5];
            list[0] = new List<string>();
            list[1] = new List<string>();
            list[2] = new List<string>();
            list[3] = new List<string>();
            list[4] = new List<string>();

            if (this.OpenConnection() == true)
            {
                MySqlCommand cmd = new MySqlCommand(query, connection);
                MySqlDataReader dataReader = cmd.ExecuteReader();

                while (dataReader.Read())
                {
                    list[0].Add(dataReader["Imie"] + "");
                    list[1].Add(dataReader["Miasto"] + "");
                    list[2].Add(dataReader["Nazwisko"] + "");
                    list[3].Add(dataReader["PESEL"] + "");
                    list[4].Add(dataReader["Nazwisko"] + "");
                }

I tutaj rodzi się moje pytanie. Czy ktoś korzystał już z tego hostingu i miał problem z pobraniem danych z bazy danych? Podaje ip oraz komplet potrzebnych danych, a mimo to, nie jestem w stanie pobrać rekordów z tablicy Pacjenci (tak, znajdują się w niej wypełnione pola). VS jako taki nie wypluwa błędów.

EDIT:

Szybki try catch podpowiedział, że połączenie się nie udało. Kod błędu to nie 1045, więc obstawiam, że błędnie podaje ip. Kolejne pytanie, który adres z dostępnych na stronie hosta należy podać ;_;

0

000webhost.com umożliwiają w ogóle łączenie się z bazą spoza ich własnych serwerów?

0

Łączenie odbywa się już z innego urządzenia (apka na androida, która wrzuca wartości do tabel).

 try {
                URL url = new URL("*Adres do pliku .php*");
                String urlParams = "Imie="+imie+"&Nazwisko="+nazwisko+"&PESEL="+PESEL+"&Miasto="+Miasto+"&Telefon="+Telefon;
 
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setDoOutput(true);
                OutputStream os = httpURLConnection.getOutputStream();
                os.write(urlParams.getBytes());
                os.flush();
                os.close();
                InputStream is = httpURLConnection.getInputStream();
                while((tmp=is.read())!=-1){
                    data+= (char)tmp;
                }
1

To, co pokazujesz tutaj, to jakieś łączenie się ze stroną internetową (i to pewnie ona łączy się dopiero z bazą), a w poście oryginalnym próbujesz się połączyć z bazą bezpośrednio. I jest właśnie bardzo duże prawdopodobieństwo, że bezpośredni dostęp do bazy z zewnątrz jest niemożliwy.

Jeżeli chcesz odwoływać się do strony internetowej, użyj klasy WebClient albo HttpClient.

0

Ok, sprawa wygląda teraz tak. Przez samego WebClient'a nie udało mi się dostać do bazy (lub źle się za to zabierałem). Stworzyłem plik .php umieszczony na serwerze

<?php
error_reporting(0);
require "init.php";


$sql = "SELECT * FROM Pacjenci";
if(!mysqli_query($con, $sql)){
	echo '{"message":"Unable to save the data to the database."}';
}

?>

Nie mam pojęcia, czy ma prawo to działać tak, że poprzez plik .php wysyłam zapytanie do bazy, a w odpowiedzi dostaję to czego szukam (tutaj SELECT * FROM Pacjenci). Jeśli tak, to jakiej metody użyć do przechwycenia takich danych?

1 użytkowników online, w tym zalogowanych: 0, gości: 1