如何显示来自webmethod的消息?

时间:2012-01-13 11:34:53

标签: c# message webmethod

朋友们,我需要一个关于在web方法中显示错误消息或任何其他消息的帮助。我尝试编写一些函数来显示消息,如果返回值为“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 个答案:

答案 0 :(得分:3)

如果要在客户端显示错误消息,您可以抛出一个适当的异常 - SOAP将封装它,并在客户端获得包含异常消息的SOAP-Error。

所以在服务器端:

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
}