Соединение .NET MAUI MySQL работает в Windows, но не работает на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Соединение .NET MAUI MySQL работает в Windows, но не работает на Android

Сообщение Anonymous »

Я разрабатываю приложение .NET MAUI со страницей входа, которая проверяет учетные данные пользователя из базы данных MySQL, размещенной на FreeSQLDatabase. Код работает отлично, когда я запускаю его на компьютере с Windows, но ему не удается подключиться к базе данных при запуске на устройстве Android.
Вот соответствующий код для моей страницы входа:< /p>

Код: Выделить всё

using System;
using MySql.Data.MySqlClient;
using Microsoft.Maui.Controls;

namespace Zakazivanje.Pages
{
public partial class LogInPage : ContentPage
{
public LogInPage()
{
InitializeComponent();
}

private async void btnLogIn_Clicked(object sender, EventArgs e)
{
try
{
using (MySqlConnection conn = new MySqlConnection(MainPage.connectionString))
{
try
{
await conn.OpenAsync();
string email = entEmail.Text;
string secretKey = entPassword.Text;

string query = "SELECT COUNT(*) AS count_persons " +
"FROM person " +
"WHERE email = @Email " +
"AND secret_key = @SecretKey";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@Email", email);
cmd.Parameters.AddWithValue("@SecretKey", secretKey);

object result = await cmd.ExecuteScalarAsync();

if (result != null && result != DBNull.Value)
{
int countPersons = Convert.ToInt32(result);
if (countPersons > 0)
{
labTitle.Text = "aga"; // Found matching person
}
else
{
labTitle.Text = "aha"; // No matching person
}
}
else
{
labTitle.Text = "Query returned null or empty result."; // Handle no result scenario
}
}
catch (MySqlException ex)
{
labTitle.Text = $"MySQL Error: {ex.Message}";
Console.WriteLine($"MySQL Error: {ex.Message}");
}
catch (Exception ex)
{
labTitle.Text = $"Error: {ex.Message}";
Console.WriteLine($"Error: {ex.Message}");
}
}
}
catch (MySqlException mysqlEx)
{
labTitle.Text = $"MySQL Error: {mysqlEx.Message}";
Console.WriteLine($"MySQL Error: {mysqlEx.Message}");
}
catch (TypeInitializationException tieEx)
{
labTitle.Text = $"Type Initialization Error: {tieEx.Message}";
Console.WriteLine($"Type Initialization Error: {tieEx.Message}");
}
catch (Exception ex)
{
labTitle.Text = $"General Error: {ex.Message}";
Console.WriteLine($"General Error: {ex.Message}");
}
}
}
}

Когда я запускаю его, я получаю следующую ошибку: Ошибка: TypeInitialization_Type, MySql.Data.MySqlClient.Replication.ReplicationManager.
Сведения о среде:MySQL.Data: 8.4.0
System.Data.SqlClient: 4.8.6
.NET: 7.0
Хост базы данных: FreeSQLDatabase
Соединение с базой данных MySQL работает в Windows, но не работает на Android. Я проверил, что у приложения есть доступ к Интернету на Android.
Дважды проверил строку подключения и убедился, что она верна.
Убедился, что приложение имеет необходимые разрешения на доступ к Интернету на Android.
Приложение ориентировано на .NET 7.0.
База данных размещена в Интернете и доступна из других приложений и платформ.
Кто-нибудь сталкивался с проблемой подобная проблема или есть какие-либо идеи о том, что может быть причиной проблемы? Любая помощь или предложения будут очень признательны!

Подробнее здесь: https://stackoverflow.com/questions/786 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»