我在SQL varchar(max)中有一列。使用LINQ,当我试图添加一个字符串超过64k的记录时,该值不会保存到数据库中。我只是在做;LINQ大字符串(64k)未插入SQL数据库
test.MyString = LargeString; //(over 64k text)
mydb.myTable.InsertOnSubmit(test);
mydb.SubmitChanges();
使用LINQ to SQL有没有限制?什么是正确的方法来做到这一点?
我在SQL varchar(max)中有一列。使用LINQ,当我试图添加一个字符串超过64k的记录时,该值不会保存到数据库中。我只是在做;LINQ大字符串(64k)未插入SQL数据库
test.MyString = LargeString; //(over 64k text)
mydb.myTable.InsertOnSubmit(test);
mydb.SubmitChanges();
使用LINQ to SQL有没有限制?什么是正确的方法来做到这一点?
VarChar(Max)
支持最多8000个字符的字符串(SQL Server 2k)。在2005+这应该不会导致错误。
您可能需要使用Text
字段; for SQL Server 2005+, VarChar(Max)
is preferred。
重要
的ntext,文本和图像数据类型将在MicrosoftSQL服务器的 未来的版本中删除。避免在 新开发工作中使用这些数据类型,并计划修改当前 使用它们的应用程序。改为使用nvarchar(max),varchar(max)和varbinary(max)。 用于存储大型非Unicode字符和二进制数据的固定长度和可变长度数据类型。 Unicode数据使用UNICODE UCS-2 字符集。
见本作在VARCHAR &文本数据类型的详细信息
我注意到你在mydb
呼吁InsertOnSubmit
和调用 - 这是错误的原因还是错误。
是的,这是一个错字。应该是mydb.SubmitChanges –
你是否得到一些异常?或者只是列变空了?如果分配像“测试字符串”这样的较小字符串会发生什么? –
该领域的规模刚刚增加到MAX?如果是这样,您可能需要重新编译DBML – hspain
我没有收到任何异常,并且列变为空(不是NULL)小字符串没有问题。我还从我的DBML中删除了表格并阅读了表格。同样的问题。 –