我在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中刪除了表格並閱讀了表格。同樣的問題。 –