ASMX webservice给出错误-根级别的数据无效

本文关键字:数据 无效 -根 webservice 出错 错误 ASMX | 更新日期: 2023-09-27 18:07:45

我是web服务新手,不太了解web服务的流程。这是我的搜索chorderwebservice .cs .

   [WebMethod]
    public int searchOrderID(string orderID)
    {   
    CheckProductTrack checkProductTrack = new CheckProductTrack();
    int Tid = checkProductTrack.getTrackRecord(orderID, 3);
    return Tid;
}

[WebMethod]
public List<ProgressDetails> getOrderIDProgress(int orderID)
{
    return ProgressTrackClass.ProgressTrack.getProgress(orderID).ToList();
}

[WebMethod]
public DataSet getTxDetails(int orderID)
{
    SqlDataAdapter da = new SqlDataAdapter();
    DataSet ds = new DataSet();
    da.SelectCommand = new SqlCommand("SELECT  tradeit.TSTxDetails.TxID, tradeit.TSTxDetails.ProductID, tradeit.TSTxDetails.ProductName, tradeit.TSTxDetails.Qty, tradeit.TSTxMaster.TxStatus "
                                     + " FROM tradeit.TSTxDetails INNER JOIN tradeit.TSTxMaster ON tradeit.TSTxMaster.TxID=tradeit.TSTxDetails.TxID WHERE tradeit.TSTxDetails.TxID='" + orderID + "' ", con);
    con.Open();
    da.Fill(ds);
    return ds;
}

流程为:

当用户输入OrderId,并点击按钮时,它将引导用户到webservice,并在trackItem表中搜索OrderId。

如果orderID出现在trackITem表中,那么它将显示进度。

如果orderID没有出现在trackITem表中,它将转到TxDetails表中,如果出现,它将显示进度。

到目前为止,我的webservice只在orderID在表TrackItem中工作,

如果它在其他表中,它会给出这个错误

  Exception Details: System.Xml.XmlException: The data at the root level is 
  invalid. Line 1, position 1.


 Line 638:      [System.ComponentModel.EditorBrowsableAttribute
(System.ComponentModel.EditorBrow   sableState.Advanced)]
 Line 639:searchOrderServiceReference.searchOrderIDResponsesearchOrderServiceReference.
 searchOrderWebServiceSoap.
 searchOrderID
 (searchOrderServiceReference.searchOrderIDRequest request) {
 Line 640:            return base.Channel.searchOrderID(request);
  Line 641:        }

和这是我的FormCLient,我访问web服务从。

 public partial class FormClient : System.Web.UI.Page
 {
  SqlConnection con
  = new SqlConnection
  (ConfigurationManager.ConnectionStrings["TMXEntities"]
  .ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
    //RETRIVEING TXID ENTERED BY USER
    string TxID = TextBox1.Text;
    Label1.Text = "Tracking Details For Order No :" + TxID + " ";

    //webservice
    searchOrderServiceReference.searchOrderWebServiceSoapClient client = new searchOrderServiceReference.searchOrderWebServiceSoapClient();
    int trackingID = client.searchOrderID(TxID);

    //IF TX ID IS IN ANY ONE OF THE TABLE, THEN PROCEDD TO GET THE PROGRESS TRACK
    if (trackingID != 0)
    {
        GridView3.DataSource = null;
        GridView3.DataBind();
        Label2.Text = "";
        GridView1.DataSource = client.getOrderIDProgress(trackingID);
        GridView1.DataBind();
    }
    else
    {
        GridView1.DataSource = null;
        GridView1.DataBind();
        GridView3.DataSource = client.getTxDetailsStatusItem(trackingID);
        GridView3.DataBind();
     }
    }
   }

我真的很模糊序列化,xml, POST GET字。asp.net中正确的web服务应该是什么样的?

谢谢

ASMX webservice给出错误-根级别的数据无效

嗯,嗨,请问这个client.getTxDetailsStatusItem(trackingID);的代码是什么?似乎您显示的asmx只包含public DataSet getTxDetails(int orderID)