小弟有一事不明
比如我有一 商品表 内有字段 id,商品名称,数量
我想再一次提交操作中向该表内插入 n条数据
比如 香蕉 5个,苹果 3个,橘子 2个
这样的存储过程如何写 是1条语句根据插入的条数执行n次(在.net环境下加入同一事务中),
还是说可以写成一个存储过程 传进去类似2维数组类型的参数 在存储过程内部循环插入(同一事务中)
有没有高手帮写下这2种情况的 .cs页代码 和 存储过程代码 或是有更好更快的方法 本人小菜鸟先谢谢了
比如我有一 商品表 内有字段 id,商品名称,数量
我想再一次提交操作中向该表内插入 n条数据
比如 香蕉 5个,苹果 3个,橘子 2个
这样的存储过程如何写 是1条语句根据插入的条数执行n次(在.net环境下加入同一事务中),
还是说可以写成一个存储过程 传进去类似2维数组类型的参数 在存储过程内部循环插入(同一事务中)
有没有高手帮写下这2种情况的 .cs页代码 和 存储过程代码 或是有更好更快的方法 本人小菜鸟先谢谢了
CREATE procedure p_Query
@XTBH varchar(7800)
as
declare @JSBH varchar(7800)
set @XTBH=ltrim(rtrim(@XTBH))
while(len(@XTBH)>0)
begin
if(charindex('/',@XTBH)>0)
begin
set @JSBH=substring(@XTBH,1,charindex('/',@XTBH)-1)
set @XTBH=substring(@XTBH,len(@JSBH)+2,len(@XTBH)) else
begin
set @JSBH=@XTBH
break
end
end
通过数据库操作类,调用存储过程执行事务
把你的商品类搞成XML的,将此XML作为一个参数传递给存储过程
存储过程解析之即可
INSERT INTO 商品表
SELECT * FROM OPENXML,(略)
例如:Item是你的货物类
List<Item> itemList = new List<Item>();
//香蕉 5个,苹果 3个,橘子 2个
itemList.Add(new Item(香蕉,5));
itemList.Add(new Item(苹果,3));
itemList.Add(new Item(橘子,2));public void SaveItems(List<Item> itemList)
{
SqlTransaction stran = ...
...
foreach(Item item in itemList)
{
item.Insert(stran);
//或者自己构造对一个item的插入sql也行,但是执行的时候必须要使用上面的stran,
//以保证这些循环的操作在同一事务下
}
...
}