首页 > 数据库 >c# sqlserver向存储过程传入xml数据

c# sqlserver向存储过程传入xml数据

时间:2024-04-16 13:12:11浏览次数:21  
标签:xml c# sqlserver -- XAttribute new query NULL NVARCHAR

c#代码:

点击查看代码
var xmlData = new XDocument(new XElement("Data", query.weldPlanList.Select(r => new XElement("Row",
                            new XAttribute("APSFactoryID", query.APSFactoryID),
                            new XAttribute("Class", query.Class),
                            new XAttribute("PlanSourceType", query.PlanSourceType),
                            new XAttribute("ProduceDate", query.ProduceDate),
                            new XAttribute("userNo", query.userNo)

                  ))));



            using (IDbConnection conn = new SqlConnection(ConnectionHelp.ConnectionString))
            {
                conn.Execute("Add", new { DATA = xmlData.ToString() }, null, null, CommandType.StoredProcedure);
            }
            return true;

SQL server

点击查看代码
CREATE PROCEDURE [dbo].[Add]
	 @DATA XML-- 批量数据
    
AS
BEGIN
	SET NOCOUNT ON;
	SET XACT_ABORT ON
	BEGIN TRANSACTION	 --事务开始


	DECLARE @CurrTime DATETIME
	SET @CurrTime = GETDATE();
	DECLARE @Voucher NVARCHAR(50)
	SET @Voucher=NEWID();
	IF OBJECT_ID(N'tempdb..#orginData', N'U') IS NOT NULL
	BEGIN
		--删除临时表
		DROP TABLE #orginData;
	END;
	CREATE TABLE #orginData(
	    ID   int IDENTITY (1,1) NOT	NULL, --创建列ID,并且每次新增一条记录就会加1
		APSFactoryID NVARCHAR(50) NOT NULL,
		Class INT NOT NULL,
		PlanSourceType INT NOT NULL,
		ProduceDate DATETIME NOT NULL,
		userNo NVARCHAR(10) NOT NULL
	)

    INSERT  INTO #orginData
                    SELECT  			
			    T.C.value('(@APSFactoryID)[1]','[NVARCHAR](50)')  AS APSFactoryID,
				T.C.value('(@Class)[1]','[FLOAT]')  AS Class,
			    T.C.value('(@PlanSourceType)[1]','[FLOAT]')  AS PlanSourceType,
				T.C.value('(@ProduceDate)[1]','[NVARCHAR](20)')  AS ProduceDate,
				T.C.value('(@userNo)[1]','[NVARCHAR](10)')  AS userNo
                    FROM  @DATA.nodes('/Data/Row') AS T ( C )
	COMMIT TRANSACTION  --提交事务
END



GO

标签:xml,c#,sqlserver,--,XAttribute,new,query,NULL,NVARCHAR
From: https://www.cnblogs.com/ellafive/p/18137859

相关文章

  • htbctf wp
    htbctfwpCrypto[VeryEasy]Dynastic凯撒变体source.pyfromsecretimportFLAGfromrandomimportrandintdefto_identity_map(a):returnord(a)-0x41deffrom_identity_map(a):returnchr(a%26+0x41)defencrypt(m):c=''f......
  • 从零开始写 Docker(十一)---实现 mydocker exec 进入容器内部
    本文为从零开始写Docker系列第十一篇,实现类似dockerexec的功能,使得我们能够进入到指定容器内部。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgroups和Ro......
  • 07_NET中Ocelot结合Consult使用
    Consul主机:http://localhost:8500新建子服务:Consul.ServiceA【http://localhost:5011】,Consul.ServiceB【http://localhost:5012】配置内容(06_NET中使用Consul(服务发现)-野码-博客园(cnblogs.com))Consul.ServiceA:[Route("[controller]/[action]")][ApiControlle......
  • XPath和CSS选择器的进阶
    记录一下关于selenium下xpath的进阶技术XPath轴(axes)和CSS选择器的伪类(pseudo-classes)与伪元素(pseudo-elements)是高级定位技术,可以在复杂的HTML结构中帮助你更精确地定位元素。1.XPath轴(Axes)XPath轴提供了一种方式来选择与当前节点有特定关系的节点。以下是一些常用的XPath轴:......
  • 结对编程 c++语言实现四则运算练习题
    结对同学:2252813程序要求:两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0-100之间通过阅读题目要求,我们决定使用c++语言完成编程,需要满足两个功能,首先生成一个包含两个运算符的算式,参与运算的数字在100之内。下一步检查答案是否正确,并且保证答......
  • 【安装部署】Apache SeaTunnel 和 Web快速安装详解
    版本说明由于作者目前接触当前最新版本为2.3.4但是官方提供的web版本未1.0.0,不兼容2.3.4,因此这里仍然使用2.3.3版本。可以自定义兼容处理,官方提供了文档:https://mp.weixin.qq.com/s/Al1VmBoOKu2P02sBOTB6DQ因为大部分用户使用SeaTunnelWeb都是基于SeaTunnel-2.3.3版本做的适......
  • Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式
    前言全局说明CSS控制表格样式一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563修改内容后,要重启flask服务,修改才能生效四、CSS控制表格样式4.1.2文件名:index.pyfrom......
  • react组件地狱是什么怎么解决
    React中的“组件地狱”主要指的是在组件开发中,由于组件的过度嵌套或复杂的层次结构,导致代码变得难以阅读、理解和维护。这通常发生在开发者为了复用逻辑或状态而在组件中层层嵌套其他组件时。在使用高阶组件(HOC)或渲染属性(renderprops)时,如果不加以控制,很容易形成嵌套层级过深的组......
  • React 中的 useRef 与 useState
    React是一个流行的JavaScript库,用于构建用户界面。它提供了几个钩子,使开发人员能够管理状态并执行副作用。React中两个常用的钩子是 useRef 和 useState 。虽然它们乍一看似乎很相似,但它们具有不同的目的并且具有不同的用例。在本文中,我们将深入探讨 useRef 和 useSta......
  • docker 配置参数参考
    {"api-cors-header":"",#——————在引擎API中设置CORS标头"authorization-plugins":[],#——————要加载的授权插件"bridge":"",————将容器附加到网桥"cgroup-parent":"",#——————为所有容器设置父cgroup&qu......