Xamarin C# połączenie z bazą danych z zewnątrz np. przez sieć komórkową

0

Witam,
Napisałem sobie prosty program na własny użytek (jest początkujący w apk mobilnych) z wykorzystaniem Xamarin C#.
Uruchamiam go na komputerze w Visual Studio i wyświetla się na emulatorze, jak widać poniżej na screenie:
screenshot-20211112095126.png
W kodzie napisałem metodę do logowania (wciśnięcie przycisku zaloguj). Kod poniżej:

private void Zaloguj_Clicked(object sender, EventArgs e)
        {
            string nazwaBazy = "BAZA_TEST1";
            string nazwaSerwera = "111.111.1.297";
            string serwerUzytkownik = "sa";
            string serwerHaslo = "12345";

            string sql = $"Data Source={nazwaSerwera}; Initial Catalog={nazwaBazy}; User ID={serwerUzytkownik}; Password={serwerHaslo}; MultipleActiveResultSets=true";
            SqlConnection con = new SqlConnection(sql);
            SqlCommand cmd;
            string pyt1;
            pyt1 = "SELECT * FROM UZYTKOWNIK WHERE IDENTYFIKATOR = '" + txtNazwaUzytkownika.Text + "' and HASLO = '" + txtHaslo.Text + "'";
            cmd = new SqlCommand(pyt1, con);
            var da = new SqlDataAdapter(cmd);
            var ds = new DataSet();
            da.Fill(ds);
            int a;
            a = ds.Tables[0].Rows.Count;
            
            if (a==0)
            {
                DisplayAlert("Błąd logowania", "Wprowadzono nieprawidłową nazwę użytkownika lub hasło!", "OK");
            }
            else if (a > 0)
            {               
                Navigation.PushAsync(new MainPage());
            }

        }

Kod działa jeśli uruchamiam projekt na komputerze. Pakuję cały pakiet, przegrywam na urządzenie, instaluję, uruchamiam i mam jedynie biały ekran, co może być przyczyną ???
Drugie pytanie to jak połączyć się przez sieć komórkową, aby ten kod (logowanie) też działało ??? - baza danych MSSQL

0

Zaoraj to. Nie umieszczaj hasła do bazy w aplikacji klienta.

0

@kzkzg: Tak, wiem że hasło bo bazy nie powinno być umieszczone w apk klienta. To jest na szybko napisane i jak na razie do testu mi służy. Chciałbym połączyć się z tą bazą poprzez sieć komórkową, lecz nie wiem jak mam to zrobić, zaś drugim problem jest to że po wgraniu na telefon i uruchomieniu tej apk pojawia się jedynie biały ekran i nic się nie dzieje, a jak widać na emulatorze jest ekran logowania pokazany.

0

Chciałbym połączyć się z tą bazą poprzez sieć komórkową, lecz nie wiem jak mam to zrobić,

Musisz mieć wystawiony serwer bazodanowy na "zewnątrz", tak aby był widoczny z internetu. Do tego potrzebujesz prawdopodobnie przekierowania portów odpowiedniego na swoim routerze i zewnętrznego adresu IP u twojego dostawcy internetu (albo rozwiązań w stylu ngrok).

że po wgraniu na telefon i uruchomieniu tej apk pojawia się jedynie biały ekran i nic się nie dzieje, a jak widać na emulatorze jest ekran logowania pokazany.

Podłącz telefon do komputera i uruchom pod debugerem na prawdziwym telefonie jak możesz (wybierz sobie - w VS masz wtedy wybór czy na emulatorze, czy na telefonie), to wtedy pokaże ci logi i wyjątki, bo na razie to wróżenie z fusów trochę.

0

Nikt nie wspomniał jeszzce o sqlinjection?

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