Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗?_C#_Sql Server_Xml_Sql Server 2005_Tsql - Fatal编程技术网

C# 将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗?

C# 将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗?,c#,sql-server,xml,sql-server-2005,tsql,C#,Sql Server,Xml,Sql Server 2005,Tsql,将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗 以下是我的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[AddPerson] @Data AS XML AS INSERT INTO Persons (name,image_binary) SELECT rowWals.value('./@Name'

将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗

以下是我的存储过程:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER   PROCEDURE [dbo].[AddPerson]
 @Data AS XML
AS  
 INSERT INTO Persons (name,image_binary)
 SELECT 
  rowWals.value('./@Name', 'varchar(64)') AS [Name],
  rowWals.value('./@ImageBinary', 'varbinary(MAX)') AS [ImageBinary]
 FROM 
  @Data.nodes ('/Data/Names') as b(rowVals)

 SELECT SCOPE_IDENTITY() AS Id
在我的模式中,名称是String类型,ImageBinary是o类型byte[]。 我也应该为ImageBinary使用字符串类型吗?我是否需要以某种方式对该字符串进行特殊编码?

可能不需要

XML是字母数字的(例如基本上代码>32),其中字节[]将是0->255

在本例中,您有两组数据:一个名称和一个BLOB。所以就这样对待他们,不是吗

ALTER  PROCEDURE [dbo].[AddPerson]
 @Name AS varchar(64)
 @Data AS varbinary(max)
AS  
 INSERT INTO Persons (name, image_binary)
 VALUES (@Name, @Data)
 SELECT SCOPE_IDENTITY() AS Id
GO

假设您对XML中的字节[]使用Base64,下面文章中描述的使用XQuery的方法应该可以工作:


作为XML,图像的二进制数据是否会进行base64编码?否,请解释为什么这很重要。Please@Mikey约翰:可能吧,但你处理的是两种不同类型的数据。