我有一个由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。
文件中的内容非常详细。请帮忙。
答案 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;