Как обновить данные с помощью веб-сервисов - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь обновить свои данные на Xamarin. Android с использованием веб-сервисов. Когда я пробовал веб-службу в браузере, данные обновляются в SQL Server и показывают сообщение Учетная запись успешно обновляется Но когда я связываю веб-службу в xamarin.android. Сообщение показывает ** Учетная запись не существует ** Можете ли вы помочь мне исправить мой код, пожалуйста!

Я также пытался использовать Web API, но вместо этого данные не обновляются, отображается ошибка Внутренняя ошибка сервера

Веб-сервис

        [WebMethod(MessageName = "PUT")]
        [System.Xml.Serialization.XmlInclude(typeof(ReturnData))]
        public ReturnData PUT(string FullName, string Gender, string ICNo, string Address,
            string PhoneNo, string Email, string Username, string Password, string PayMethod)
        {
            int IsAdded = 1;
            string Message = "";

            // check if this account is already created
            Users myUsers = new Users();
            if (myUsers.IsAvailable(Username, Email) == 0)
            {

                IsAdded = 0;
                Message = "Account is not exist";
            }
            else
            {
                //saving into db
                SqlConnection conn = new SqlConnection(new DBConnection().ConnectionString);

                try
                {
                    SqlCommand cmd = new SqlCommand("UPDATE pmsVehicleRecord SET clFullName=@fullName, clGender=@gen, clICNo=@ic, clAddress=@address, clPhoneNo=@phoneNo, clEmail=@email, clPwd=@pwd, clPaymentMethod=@payMethod WHERE clUsername=@username");

                    cmd.Parameters.AddWithValue("fullName", FullName);
                    cmd.Parameters.AddWithValue("gen", Gender);
                    cmd.Parameters.AddWithValue("ic", ICNo);
                    cmd.Parameters.AddWithValue("address", Address);
                    cmd.Parameters.AddWithValue("phoneNo", PhoneNo);
                    cmd.Parameters.AddWithValue("email", Email);
                    cmd.Parameters.AddWithValue("username", Username);
                    cmd.Parameters.AddWithValue("pwd", Password);
                    cmd.Parameters.AddWithValue("payMethod", PayMethod);
                    cmd.Connection = conn;
                    if (conn.State == System.Data.ConnectionState.Closed)
                        conn.Open();
                    SqlDataReader ds = cmd.ExecuteReader();

                    Message = "Account is successfully updated";
                }
                catch (Exception ex)
                {
                    IsAdded = 0;
                    Message = ex.Message;
                }
            }
            ReturnData rt = new ReturnData();
            rt.Message = Message;
            rt.lstIndex = IsAdded;

            return rt;
        }
    public class Users
    {
        public int IsAvailable(string UserName, string Email)
        {
            //Result result = new WebAppTest.Result();
            int lstIndex = 0;
            SqlConnection conn = new SqlConnection(new DBConnection().ConnectionString);

            try
            {
                SqlDataReader reader;
                {
                    SqlCommand cmd = new SqlCommand("SELECT lstIndex FROM pmsVehicleRecord WHERE clUsername=@username AND clEmail=@email");

                    cmd.Parameters.AddWithValue("username", UserName);
                    cmd.Parameters.AddWithValue("email", Email);
                    cmd.Connection = conn;
                    if (conn.State == System.Data.ConnectionState.Closed)
                        conn.Open();
                    reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        lstIndex = reader.GetInt32(0);
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return lstIndex;
        }
    }
        private void BtnSave_Click(object sender, EventArgs e)
        {
            EditText username = FindViewById<EditText>(Resource.Id.txtUsername);
            EditText fullName = FindViewById<EditText>(Resource.Id.txtFullName);
            EditText gender = FindViewById<EditText>(Resource.Id.txtGender);
            EditText icNo = FindViewById<EditText>(Resource.Id.txtICNo);
            EditText address = FindViewById<EditText>(Resource.Id.txtAddress);
            EditText phoneNo = FindViewById<EditText>(Resource.Id.txtPhoneNo);
            EditText email = FindViewById<EditText>(Resource.Id.txtEmail);
            EditText password = FindViewById<EditText>(Resource.Id.txtPwd);
            EditText payMethod = FindViewById<EditText>(Resource.Id.txtPayMethod);

            PUTWebRef.WebServicePMS webserUpdate = new PUTWebRef.WebServicePMS();
            webserUpdate.PUTAsync(username.Text, fullName.Text, gender.Text, icNo.Text, address.Text, phoneNo.Text, email.Text, password.Text, payMethod.Text);
            webserUpdate.PUTCompleted += WebserUpdate_PUTCompleted;
        }
        private void WebserUpdate_PUTCompleted(object sender, PUTWebRef.PUTCompletedEventArgs e)
        {
                AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                AlertDialog alert = dialog.Create();
                alert.SetTitle("Error");
                alert.SetMessage(e.Result.Message);
                alert.SetButton("Ok", (c, ev) =>
                { });
                alert.Show();
        }

Ожидаемый результат должен быть Аккаунт успешно обновлен . Фактический результат - Учетная запись не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...