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服务应该是什么样的?
谢谢
嗯,嗨,请问这个client.getTxDetailsStatusItem(trackingID);
的代码是什么?似乎您显示的asmx只包含public DataSet getTxDetails(int orderID)