C# XML解析:第4行,字符19,text/xmldecl不在输入的开头
您好,我使用了下面的代码,并将XML参数从C#am传递到sql server,得到以下错误“XML解析:第4行,字符19,text/xmldecl不在输入的开头” 问题在于:C# XML解析:第4行,字符19,text/xmldecl不在输入的开头,c#,asp.net,xml,C#,Asp.net,Xml,您好,我使用了下面的代码,并将XML参数从C#am传递到sql server,得到以下错误“XML解析:第4行,字符19,text/xmldecl不在输入的开头” 问题在于: xs.Serialize(ms, ClientId); string xmlClientid = UTF8Encoding.UTF8.GetString(ms.ToArray()); xs.Serialize(ms, FieldId); string xmlFieldid = UTF8Encoding.UTF8.GetSt
xs.Serialize(ms, ClientId);
string xmlClientid = UTF8Encoding.UTF8.GetString(ms.ToArray());
xs.Serialize(ms, FieldId);
string xmlFieldid = UTF8Encoding.UTF8.GetString(ms.ToArray());
xs.Serialize(ms, FieldId);
string xmlStatusid = UTF8Encoding.UTF8.GetString(ms.ToArray());
对Serialize
的第一次调用将整个XML文档写入MemoryStream
。第二个调用还将完整的XML文档写入同一个流,但它将其放在第一个流之后。因此,对ToArray
的第二次调用检索一个字节数组,该数组由两个完整的XML文档组成,一个接一个
如果您必须重用同一个流,请考虑调用它来截断使用之间的现有内容:
xs.Serialize(ms, ClientId);
string xmlClientid = UTF8Encoding.UTF8.GetString(ms.ToArray());
ms.SetLength(0);
xs.Serialize(ms, FieldId);
string xmlFieldid = UTF8Encoding.UTF8.GetString(ms.ToArray());
ms.SetLength(0);
xs.Serialize(ms, FieldId);
string xmlStatusid = UTF8Encoding.UTF8.GetString(ms.ToArray());
您尚未包含代码…旁注::“命名过程时避免使用sp_uuu前缀。SQL Server使用此前缀指定系统过程。如果存在同名的系统过程,则使用前缀可能会导致应用程序代码中断。”
public static DataTable GetPartnerProfileIdforDashboardSearchLevel2(System.String language, System.String clientId, System.String statusProId)
{
// create parameters
SqlParameter[] parameters = new SqlParameter[3];
parameters[0] = new SqlParameter("@Language", SqlDbType.VarChar, 100, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, language);
parameters[1] = new SqlParameter("@ClientId", SqlDbType.Xml, 2147483647, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, clientId);
parameters[2] = new SqlParameter("@StatusProId", SqlDbType.Xml, 2147483647, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, statusProId);
// Call the stored proc.
DataTable toReturn = new DataTable("GetPartnerProfileIdforDashboardSearchLevel2");
bool hasSucceeded = DbUtils.CallRetrievalStoredProcedure("[JobApplicationModule].[dbo].[sp_GetPartnerProfileIdforDashboardSearchLevel2]", parameters, toReturn, null);
return toReturn;
}
xs.Serialize(ms, ClientId);
string xmlClientid = UTF8Encoding.UTF8.GetString(ms.ToArray());
xs.Serialize(ms, FieldId);
string xmlFieldid = UTF8Encoding.UTF8.GetString(ms.ToArray());
xs.Serialize(ms, FieldId);
string xmlStatusid = UTF8Encoding.UTF8.GetString(ms.ToArray());
xs.Serialize(ms, ClientId);
string xmlClientid = UTF8Encoding.UTF8.GetString(ms.ToArray());
ms.SetLength(0);
xs.Serialize(ms, FieldId);
string xmlFieldid = UTF8Encoding.UTF8.GetString(ms.ToArray());
ms.SetLength(0);
xs.Serialize(ms, FieldId);
string xmlStatusid = UTF8Encoding.UTF8.GetString(ms.ToArray());