我正在使用实体框架将详细信息插入数据库,其中我有一个列varchar(50)。 当我试图插入超过50长度的值时,它会给我一个错误字符串或二进制数据会被截断。所以,为了安全起见,我只是将其更改为varchar(100)。
现在可以有人让我知道这是改变Db价值的唯一解决方案还是我们有任何替代方案....... 我读了一篇文章http://sqlblogcasts.com/blogs/danny/archive/2008/01/12/scuffling-with-string-or-binary-data-would-be-truncated.aspx
但我如何在c#中使用这些东西。我感谢你的任何建议.........
由于
答案 0 :(得分:2)
嗯,首先,显然你不能在varchar(50)中插入长于50的字符串。
因此,根据您的要求,您有两种选择:
嗯,还有第三个,这是切断字符串而不告诉用户,但我不会这样做。
因此,这取决于您的业务需求。但我不会像你建议的文章那样做任何“诡计”
答案 1 :(得分:2)
根据您正在处理的输入字段的类型,使用varchar(max)可能是一种选择。
但正如之前所指出的,它实际上归结为您的业务需求。
答案 2 :(得分:0)
您应该将db中的字段长度设置为合理长度,并且应该阻止用户输入不适合该长度的值。
答案 3 :(得分:0)
1-when 数据库表Alter when issue生成
2-首先备份表架构和数据,然后在重新创建表时删除表,然后运行代码.. 工作正常。