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。

Sql server management studio不允许编辑表的值

我已将字节数组转换为字符串

如果你做了类似message= Encoding.UTF8.GetString(myByteArray)的事情,你可能会得到无法打印的字符。前导'0可能导致字符串无法打印。这是处理SQL数据库中二进制数据的错误方法。

正确的处理方法是以下选项之一(按偏好顺序)

  1. 将数据存储为varbinary而不是nvarchar,这使您可以直接将byte[]与EF一起存储,而无需进行任何转换
  2. 正确编码数据
    1. 通过message= Convert.ToBase64String(myByteArray)myByteArray = Convert.FromBase64String(message)使用Base64编码
    2. 使用十六进制,SoapHexBinary使得进出十六进制字符串变得非常容易