C# 将存储在SQL XML参数中的字节[]存储到SQL Server 2005中的varbinary(MAX)字段中。能做到吗?
将存储在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'
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约翰:可能吧,但你处理的是两种不同类型的数据。