2013-02-25 38 views
2

我在做一个项目,我开始测试它的一部分。我意识到我有一个小问题,但无法理解它。我试图插入一些数据到数据库,有一列是nvarchar(4000)。但每当我尝试插入任何长度的字符串,它只会插入255个字符。为什么只需要255个字符?asp.net只在数据库中插入255个字符

这里是我的代码,

dbCommand = db.GetStoredProcCommand("New_Post"); 
     db.AddInParameter(dbCommand, "PostHeader", DbType.String, txt_post_header.Text.Trim()); 
     db.AddInParameter(dbCommand, "PostBody", DbType.String, txt_post_body.Text.Trim()); 
     db.AddInParameter(dbCommand, "UserId", DbType.Guid, new Guid(Session["SessionUserID"].ToString())); 
     db.AddInParameter(dbCommand, "PollDescription", DbType.String, txt_poll.Text); 
     db.AddInParameter(dbCommand, "CityId", DbType.Int16, 1); 
     db.AddInParameter(dbCommand, "SpecialtyID", DbType.Int16, Convert.ToInt16(Session["SessionSpecialityId"].ToString())); 
     db.ExecuteNonQuery(dbCommand); 
+1

存储过程New_Post的参数类型是什么? nvarchar(4000)呢? (此外......它在里面做什么?) – 2013-02-25 13:46:13

+0

**存储过程**是否可能将参数限制为255个字符?否则:你可以**使用'db.AddInParameter(...)'为你的'DbType.String'参数指定一个长度** - 也许这个默认值为255,除非你另有指定.... – 2013-02-25 13:48:04

+0

你是男人: ) 非常感谢你。在Procdure中,声明了255. – 2013-02-25 13:49:09

回答

0

既然你是不是有限制声明参数,你唯一的2个选项是数据库领域拥有256限制或参数的存储过程,检查一下,你应该解决你的问题。

相关问题