NTest类型的字段通过存储过程只能插入16个字符,请指教。
这是传值的内容:
SqlParameter[] part={
data.MakeInParam( "@Title ",SqlDbType.NVarChar,50,Title.Trim()),
data.MakeInParam( "@ContentList ",SqlDbType.NText,16,ContentList),
data.MakeInParam( "@DocumentType ",SqlDbType.Int,20, DocumentType),
data.MakeInParam( "@CreateName ",SqlDbType.NVarChar,20,CreateName.Trim()),
data.MakeInParam( "@CreateTime ",SqlDbType.DateTime,30,CreateTime)
};
下面是存储过程中的内 容:
CREATE proc Sp_work_Addwork
@Title NVarchar(50),
@ContentList NText,
@DocumentType Int,
@CreateName NVarChar(20),
@CreateTime DateTime
AS
insert into UDS_WorkPlan(Title,ContentList,DocumentType,CreateName,CreateTime)
values(@Title,@ContentList,@DocumentType,@CreateName,@CreateTime)
GO
请朋友们批点一下吧,上面传的值如果在SQL查询分析器中,利用存储过程中的语句进行插入操作也没有问题,可是通过程序执行的就是不行。这个问题已经困扰我好长时间了,谢谢。
------解决方案--------------------data.MakeInParam( "@ContentList ",SqlDbType.NText,16,ContentList),
這句代碼修改下
16改為大些的長度
------解决方案--------------------感覺是傳入參數的時候給截斷了的。
------解决方案--------------------exec sp_tableoption @tablenamepattern = 'table '
,@optionname= 'text in row '
,@optionvalue= 'value '
value 为0或off时关闭text in row 数据行只存储指向数据存放位置的指针,当vlue为24-7000时,开启text in row ,符合长度的数据直接被存在数据行里,此时查看数据列的值:)
------解决方案--------------------上面传的值如果在SQL查询分析器中,利用存储过程中的语句进行插入操作也没有问题,可是通过程序执行的就是不行
那只能说明是程序的问题,检查一下程序吧,看看在插入之前的字符串是否正常