用cast 或者 convert
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
从ntext到char是显式转换.cast (你的变量或字段 as char(??)) CONVERTCONVERT (char(??),变量或字段)
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
从ntext到char是显式转换.cast (你的变量或字段 as char(??)) CONVERTCONVERT (char(??),变量或字段)
public void DoDetailNew(string user_id,XmlDocument XmlDoc)
{
ErrorMessages Err=new ErrorMessages();
int ReturnValue=0;
SQLRun objSqlRun=new SQLRun();
string[,] Param=new string[2,5]; Param[0,0]="Return_Value";
Param[0,1]="I";
Param[0,2]="Return";
Param[0,3]="4";
Param[0,4]="0";
Param[1,0]="xmldoc";
Param[1,1]="LNC";
Param[1,2]="In";
Param[1,3]="50000";
Param[1,4]=XmlDoc.InnerXml.ToString();
try
{
objSqlRun.SQLRunCommandSP("SP_DoDetailNew",Param);
ReturnValue=int.Parse(Param[0,4]);
if(ReturnValue!=0)
{
//ErrorMessages Err=new ErrorMessages();
Err.TrackSPError(ReturnValue);
return;
}
}
catch(OleDbException ex)
{
//ErrorMessages Err=new ErrorMessages();
Err.TrackError(ex);
return;
}
}
Param[1,4]=XmlDoc.InnerXml.ToString();表示你是给存储过程定义的是字符型的参数吧?
CREATE Procedure SP_DoDetailNew
@user_id char(10),
@xmldoc ntext
AS
把 @user_id char(10),去掉就行了,C#里只有一个XML的输入参数和一个输出,问题解决。