从webservice设置返回响应字段

时间:2014-01-13 18:20:08

标签: android response webmethod

我正在尝试使用一个小型数据库的web服务,该数据库由少数字段组成,即名称,年龄,性别,城市。现在我已经编写了一个基于名称返回true或false的web服务并返回到我的活动。< / p>

现在我需要在各种文本视图中输出(即......我需要显示该用户的年龄,性别和城市的其他字段)。

这就是我要做的事情:

 <WebMethod> _
Public Function GetUserDetails(ByVal code As String) As String

    Dim conn As SqlConnection
    conn = ConnectionManager.GetConnection()
    conn.Open()
    Dim DsCheckUser As New DataSet()
    Dim newCmd As SqlCommand = conn.CreateCommand()

    newCmd.CommandType = CommandType.Text
    newCmd.CommandText = "Select age, sex from userdetails where username='" & username & "' "

    Dim sqlda As New SqlDataAdapter(newCmd)
    sqlda.Fill(DsCheckUser)
    'Getting Back result from your DB.
    If DsCheckUser.Tables(0).Rows.Count > 0 Then
        Return True
    Else
        Return False
    End If
    conn.Close()
    'Return address
End Function

和OnPostExecute:

protected void onPostExecute(Void result) {
        //Error status is false
        if(!errored){
            //Based on Boolean value returned from WebService
            if(codeStatus){
                            //Here I need to set the userdetails based on username and display them in each individual textview.
            }else{
                //Set Error message
                Toast.makeText(getBaseContext(), "Username not found", Toast.LENGTH_SHORT).show();
            }
        //Error status is true  
        }else{
        Toast.makeText(getBaseContext(), "Error occured in invoking webservice", Toast.LENGTH_SHORT).show();
        }
        //Re-initialize Error Status to False
        errored = false;
    }

因此,基于codestatus是否属实,我需要从我的网络方法中获取剩余的年龄,性别和城市字段,并将其显示在我的文本视图中。

这是我的doInBackground:

 @Override
        protected Void doInBackground(String... params) {
            //Call Web Method
            codeStatus = ScanWebService.invokeScanWS(editTextCode,"GetBarcodeDetails");
            return null;
        }

2 个答案:

答案 0 :(得分:-1)

编辑2:只需将文本值设置为TextView。

你有没有遇到任何问题,如果是这样的帖子日志猫?

答案 1 :(得分:-1)

好的,我想我明白你现在需要什么。

doInBackground

从它的外观来看,我会说你最好的选择是首先打电话给WebMethod,你可以轻松检查返回的值是true还是false 。如果它返回true,您可以第二次调用WebMethod并将返回的值保存在String中。然后,您可以解析String并将String保存在您在AsyncTaskActivity开头声明的字段中(如果您需要以外的值)得分AsyncTask然后显然你在Activity声明了它们。

onPostExecute

您可以轻松地从doInBackground中获取存储值的字段,并将文本设置为TextView

我对WebMethod或其他任何方面都没有太多经验,所以我无法帮助你(但是,看起来似乎return address行是无法访问的代码)。< / p>