Как показать сообщение с вебметода? - PullRequest
0 голосов
/ 13 января 2012

Друзья, мне нужна помощь относительно отображения сообщения об ошибке или любого другого сообщения в веб-методе.Я попытался написать какую-то функцию для отображения сообщения, если возвращаемое значение равно «0» или длина возвращаемой строковой переменной равна «0», но результата нет.Можете ли вы дать какое-то решение этого?Да, конечно.Вот мой код: -

    [WebMethod]
public string[] GetCompletionCompany(string prefixText, int count)
{
    if (count == 0)
    {
        count = 10;
    }

    if (prefixText != "")
    {
        strSQLQuery = "SELECT ID," +
                    "       stallno," +
                    "       company " +
                    "FROM   IESS2012_IND_PartDetails " +
                    "WHERE company LIKE '%" + prefixText + "%' " +
                    "ORDER BY company";
    }
    DataTable dt = objDBHelper.gReturnDataSet(System.Data.CommandType.Text, strSQLQuery).Tables[0];
    List<string> items = new List<string>(count);

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        string strName = dt.Rows[i][2].ToString();
        items.Add(strName);
    }

    if (items.ToArray().Length == 0)
    {
        ShowMessage();
        return items.ToArray();
    }
    else
    {
        return items.ToArray();
    }

}

    private void ShowMessage()
{

    string msg= gUserMessage.NoRecords;
    return msg;
}

Как мне показать сообщение об отсутствии записи?

1 Ответ

3 голосов
/ 13 января 2012

Если вы хотите показать сообщение об ошибке на стороне клиента, вы можете просто выдать соответствующее исключение - SOAP инкапсулирует его, и вы получите ошибку SOAP на стороне клиента, содержащую сообщение об исключении.

Итак, на стороне сервера:

if (items.ToArray().Length == 0)
{
    throw new NoRecordsException("Your Message...");
}

и на стороне клиента (при условии, что вы также используете C #):

string[] result;
try
{
    result = service.GetCompletionCompany(prefixText, count);
}
catch(SoapException exp)
{
    string message = exp.Message; //or exp.InnerException.Message
}
...