Открытие соединения Postgres в Xamarin возвращает ошибку при подключении

#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 находится в процессе разработки. Как только это будет сделано. Я опубликую это здесь.