数据库储存字符串长度超长

F35rtt 2015-03-19 09:32:05

使用JSON序列化一个对象成字符串,然后储存入数据库。
在数据库中设置列的数据类型为nvarchar(MAX),可是为什么会出现字符串超长的异常呢?
nvarchar(MAX)难道不是意味着字符串可以无限长吗?
...全文
1743 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-03-19
  • 打赏
  • 举报
回复
引用 9 楼 qldsrx 的回复:
晕,这个是你json序列化类的问题,那个有最大长度限制,和数据库无关,楼上就winner2050和wf5360308发现问题所在了,其他人看都不看错误信息乱回答。
+1 序列化和反序列化时出错,并不是入库时出错
qldsrx 2015-03-19
  • 打赏
  • 举报
回复
晕,这个是你json序列化类的问题,那个有最大长度限制,和数据库无关,楼上就winner2050和wf5360308发现问题所在了,其他人看都不看错误信息乱回答。
冷月孤峰 2015-03-19
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390921892
F35rtt 2015-03-19
  • 打赏
  • 举报
回复
使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗?
於黾 2015-03-19
  • 打赏
  • 举报
回复
你可以用其他类型来存放 或者想简答,那么建立个子表来存放这个,写入的时候判断,如果超过最大长度,截断,分多次写入 读取的时候拼接
  • 打赏
  • 举报
回复
用的什么数据库? nvarchar(max) 最多可以储存2G字节的数据。 确定 程序的其它地方没有异常?
於黾 2015-03-19
  • 打赏
  • 举报
回复
nvarchar(MAX)难道不是意味着字符串可以无限长吗 当然不是,只是设置了nvarchar允许的最大长度而已 比如最大长度是3000,那么nvarchar(MAX)等效于nvarchar(3000)罢了
  • 打赏
  • 举报
回复
这不是入库时候发生的异常哦
winner2050 2015-03-19
  • 打赏
  • 举报
回复
以后出错了不要慌慌张张的。 错误信息都不看。 人家说了超过了maxjsonlength的限制了,如果你需要那么大的json,就扩大限制。
bdmh 2015-03-19
  • 打赏
  • 举报
回复
用备注型,或者用image字段,保存字节流
本拉灯 2015-03-19
  • 打赏
  • 举报
回复
这是JSON的问题。 与数据库无关。你要用超长的字符。那就改用text类型吧。
F35rtt 2015-03-19
  • 打赏
  • 举报
回复
引用 11 楼 F35rtt 的回复:
我已经在默认的MaxJsonLength值前面加了一个1了,都好几百万的值了,还是嫌短。 使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗?
. 这种情况下,是不是要改为序列化成二进制了呢?二进制没有长度限制吧
F35rtt 2015-03-19
  • 打赏
  • 举报
回复
我已经在默认的MaxJsonLength值前面加了一个1了,都好几百万的值了,还是嫌短。 使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗?

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧