字符串截断:使用formview的sqldatasource上的max = 4000错误,更新SQL Compact 4.0的参数字符串

时间:2015-02-18 18:13:01

标签: asp.net sqldatasource

我使用连接到formview的asp.net sqldatasource,其更新参数定义为字符串,如:

<UpdateParameters>
<asp:Parameter Name="C"   Type="String" />
</UpdateParameters>

当我超过4000个字符时,我得到“字符串截断:max = 4000 ...”错误。 我正在更新到SQL Compact Edition 4.0,字段是ntext。 我能够将超过4000个字符用于视觉工作室界面,问题似乎与数据库字段类型或大小无关。

将参数更改为:

<asp:Parameter Name="C"   Type="String" size="5000" /> 

没有帮助。如果我这样做,我没有错误,但不会超过4000个字符更新。

什么可能限制更新字符大小?

1 个答案:

答案 0 :(得分:0)

我最终在代码

后面移动了数据库更新
   Using connection As New SqlCeConnection(connstr)
        Dim nonquerycommand As SqlCeCommand = connection.CreateCommand()

        nonquerycommand.Parameters.Add("@c", SqlDbType.NText).Value = TheData

        connection.Open()
        nonquerycommand.CommandText = queryString
        nonquerycommand.ExecuteNonQuery()
        connection.Dispose()
    End Using

我仍然想知道为什么当我使用带有asp:Parameter标签的SqlDatasource时,我达到了4000个字符的限制。查看代码,添加SqlDbType.NText参数可能是个问题。我无法在aspx页面上将其添加到asp:Parameter标签。

我希望我可以使用SqlDataSource Update Parameters在aspx页面上处理这个问题。但它不能用于更新超过4000个字符。

我必须对一些项目进行修改,所以如果我的初步问题有一个答案,它将节省我的时间。虽然代码隐藏解决方案适用于超过4000个字符,但如果aspx页面中的sqldatasource处理4000多个字符,我不必为每个项目进行更改 - 所以请帮助。