#postgresql #xamarin.forms
#postgresql #xamarin.forms
Вопрос:
Я пытаюсь подключить свое приложение Android к Postgres, но, похоже, не работает.
Сообщение об исключении: Exception while Connecting
Это мой код, лежащий в основе,
private void Login_Clicked(object sender, EventArgs e)
{
DBInterface<DBLogicInput, DBLogicResult> dbLoginLogic = new DBLoginLogic();
DBLogicInput userInput = new DBLogicInput();
DBLogicResult DBResult = new DBLogicResult();
LoginModel useCredentials = new LoginModel()
{
userName = txtUsername.Text,
passWord = txtPassword.Text
};
userInput[typeof(LoginModel).FullName] = useCredentials;
try
{
DBResult = dbLoginLogic.DoProcess(userInput);
bool userExisting = DBResult.ResultCode != DBLogicResult.RESULT_CODE_ERR_DATA_NOT_EXIST;
if (userExisting)
{
Application.Current.MainPage = new NavigationPage(new IndexPage());
}
else
{
_ = DisplayAlert("Login Error", "User does not exist", "Ok");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Это класс, который я создал для подключения к БД.
public abstract class DBLogic : DBInterface<DBLogicInput, DBLogicResult>
{
public string connectionString = "Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=proyektoNijuan";
public DBLogicResult DoProcess(DBLogicInput inOut)
{
//throw new NotImplementedException();
DBLogicResult result = default(DBLogicResult);
NpgsqlConnection connection = null;
NpgsqlTransaction transaction = null;
try {
connection = new NpgsqlConnection(connectionString);
if (connection.State != System.Data.ConnectionState.Open)
{
connection.Open();
}
transaction = connection.BeginTransaction();
result = Process(connection, inOut);
transaction.Commit();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
transaction.Rollback();
} finally {
if (connection != null)
{
connection.Close();
}
}
return resu<
}
protected abstract DBLogicResult Process(NpgsqlConnection conn, DBLogicInput InOuT);
}
Ошибка возникает после того, как отладчик попадает в код connection.Open();
.
Должен ли я добавить веб-службы для подключения postgres к моему приложению Android, построенному в xamarin forms?
Я только новичок в формах Xamarin. Я просто пытаюсь создать собственное приложение. И мне нужна небольшая помощь, чтобы изучить новую платформу в программировании.
Спасибо и с уважением,
Как это исправить?
Ответ №1:
Ну, я думаю, что я делаю это неправильно.
Возможно, правильный способ подключения PostgreSQL — это иметь ВЕБ-API.
Вызов этого веб-API для форм Xamarin.
Я действительно не знаю, правильно ли это, но я попробую.
Я обновлю правильный ответ после завершения разработки этого ВЕБ-API, чтобы другие новички нашли этот ответ полезным.
Комментарии:
1. Спасибо за ваш обмен, пожалуйста, не забудьте принять ваш ответ, это поможет другим, у кого есть подобная проблема.
2. В настоящее время ВЕБ-API находится в процессе разработки. Как только это будет сделано. Я опубликую это здесь.