winform里执行存储过程,存储过程中的游标部分不执行是为什么?我的存储过程sp1里有以下一段内容
……
delete from t_warehouseStock
DECLARE ItemBom_cursor CURSOR
FOR SELECT FitemID FROM table1 group by FitemID
Open ItemBom_cursor
Fetch Next From ItemBom_cursor into @id
while @@Fetch_status=0
begin
insert into t_warehouseStock(FitemID,FBatchNo,FBomInterID,ICinvQty,InQty,OutQty,PlinQty) exec sp @ID
Fetch Next From ItemBom_cursor into @FitemID,@FBomInterID
end
Close ItemBom_cursor
DEALLOCATE ItemBom_cursor
/***********************************************************************************/当我用
SqlCommand comm = new SqlCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.Connection = myConn;
comm.CommandText = "sp1";
comm.ExecuteReader();
或
SqlCommand comm = new SqlCommand();
comm.Connection = myConn;
comm.CommandText = "exec sp1";
comm.ExecuteNonQuery();
获得的结果,都是sp1执行到“……
delete from t_warehouseStock
”的结果,后面的游标没有执行
但该存储过程在数据库的查询里直接调用,是正常的,游标部分也被正常执行了
……
delete from t_warehouseStock
DECLARE ItemBom_cursor CURSOR
FOR SELECT FitemID FROM table1 group by FitemID
Open ItemBom_cursor
Fetch Next From ItemBom_cursor into @id
while @@Fetch_status=0
begin
insert into t_warehouseStock(FitemID,FBatchNo,FBomInterID,ICinvQty,InQty,OutQty,PlinQty) exec sp @ID
Fetch Next From ItemBom_cursor into @FitemID,@FBomInterID
end
Close ItemBom_cursor
DEALLOCATE ItemBom_cursor
/***********************************************************************************/当我用
SqlCommand comm = new SqlCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.Connection = myConn;
comm.CommandText = "sp1";
comm.ExecuteReader();
或
SqlCommand comm = new SqlCommand();
comm.Connection = myConn;
comm.CommandText = "exec sp1";
comm.ExecuteNonQuery();
获得的结果,都是sp1执行到“……
delete from t_warehouseStock
”的结果,后面的游标没有执行
但该存储过程在数据库的查询里直接调用,是正常的,游标部分也被正常执行了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货