Sql server management studio不允许编辑表的值
本文关键字:编辑 不允许 server management studio Sql | 更新日期: 2023-09-27 18:25:07
使用c#代码,我将字节数组转换为字符串,然后使用Entity框架存储到sql表中。在此之前没有任何问题。
但是,如果我尝试在MSSqlServerManagementStudio中使用"select"命令查看存储在表中的值,它会在该列中显示空白值。如果我查询Len(MyColumn),那么它会显示一个有效的长度。
为什么我看不到存储的值?
更新:当我右键单击表->编辑前200行时,它会显示一个值。但是,只要我点击那个单元格,值就会消失。我使用的是Sql server 2005。
我已将字节数组转换为字符串
如果你做了类似message= Encoding.UTF8.GetString(myByteArray)
的事情,你可能会得到无法打印的字符。前导'0
可能导致字符串无法打印。这是处理SQL数据库中二进制数据的错误方法。
正确的处理方法是以下选项之一(按偏好顺序)
- 将数据存储为
varbinary
而不是nvarchar
,这使您可以直接将byte[]
与EF一起存储,而无需进行任何转换 - 正确编码数据
- 通过
message= Convert.ToBase64String(myByteArray)
和myByteArray = Convert.FromBase64String(message)
使用Base64编码 - 使用十六进制,SoapHexBinary使得进出十六进制字符串变得非常容易
- 通过