您好我在c#中有一个方法将xml从我的应用程序发送到SQL Server 2008存储过程。方法如下所示:
public void sendXml(string filePath)
{
MemoryStream xmlStream= Xml.InsertXML(filePath);
try
{
using (_connection = new SqlConnection(myConnectionString))
{
using (_command = new SqlCommand("my_stored_procedure", _connection))
{
_command.CommandType = CommandType.StoredProcedure;
_command.Parameters.Add("@input", SqlDbType.Xml).Value = new SqlXml(xmlStream);
_connection.Open();
_command.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw exception;
}
}
当我的应用程序尝试运行_command.ExecuteNonQuery();
时,我得到了一个SQLException
字符串或二进制数据将被截断
困扰我的是我可以在SSMS中完美地执行存储过程(没有截断问题)。我无法弄清楚为什么会发生这种情况。这是我的sp看起来像:
ALTER PROCEDURE my_stored_procedure
@XML XML
AS
BEGIN
SET NOCOUNT ON
SELECT C.value(...),
...
FROM @XML.nodes(...) AS t(C)
SET NOCOUNT OFF
END
我的问题是:
我在网上搜索,找不到任何线索。我知道截断通常发生在你的输入超过数据类型可以包含的时候。在此先感谢您的帮助