从c#在sql server 2005中将UTF8数据插入到image字段中

时间:2013-07-11 10:50:06

标签: c# sql-server utf-8

我有一个由xml标记组成的字符串,我用UTF8编码。当我将它插入到sql server image文件中时,它只插入前28个字节或字符。

这是我的代码:

  UTF8Encoding utf8 = new UTF8Encoding();
  byte[] encodedBytes = utf8.GetBytes(file.Value);
  string update = String.Format("Update xdpath set content = '{0}' where dpath = '{1}';", encodedBytes, file.Key);
  SqlCommand com = new SqlCommand(update, conn);
  com.ExecuteNonQuery();  

结果在图像类型的内容字段中:0x53797374656D2E427974655B5D。

文件中的内容非常详细。请帮忙。

1 个答案:

答案 0 :(得分:1)

使用sql参数

SqlCommand ImageCommand = new SqlCommand("", (SqlConnection)connection, (SqlTransaction)Transaction);

ImageCommand.CommandText = string.Format(@"Update xdpath set content = @ByteArray where dpath = '{0}'",file.Key);

ImageCommand.Parameters.Add("@ByteArray", SqlDbType.Image).Value = (object)encodedBytes ?? DBNull.Value;