我有两个数据库 db1 db2
db1 有存储过程 sp1 参数 id int output.
db2 有存储过程 sp2 参数 id int output.sp1 自动调用 sp2, sp2 中对db2 一个table 做 insert into 操作,然后新生成的id 我现在用c# 调用sp1 当程序运行结束后, 是否可以在C# 这边得到 新生成的id?
db1 有存储过程 sp1 参数 id int output.
db2 有存储过程 sp2 参数 id int output.sp1 自动调用 sp2, sp2 中对db2 一个table 做 insert into 操作,然后新生成的id 我现在用c# 调用sp1 当程序运行结束后, 是否可以在C# 这边得到 新生成的id?
解决方案 »
- 求高手帮忙改下错误
- 模板引擎 StringTemplate 的用法! 大家都来谈谈!求好点的模板引擎做二次扩展使用!
- 在自己写的函数中调用控件的方法.
- 用下面的方法取硬盘序列号,在插入U盘时,却取出U盘的名称,为什么?
- 【跪求】2个DATAGRIDVIEW联动 和 DATAGRIDVIEW联动textbox等控件的例子
- 在winForm程序中,如何获得指定服务器的系统时间?
- 高分请教高手C#中调用NeoSpeech的TTS,找了好多地方都没有答案!
- 如何在c#中调用另一个c#程序
- 为什么提示我这个错了radioButton1.Checked = false && radioButton2.Checked = false
- WPF里的TreeView 怎样不限制级别可随意拖动位置排序?
- 求一正则表达式
- winform中的datagridview问题
其实你可以放在一个库里执行,给你个代码
其实你可以把一个sp1写成函数,把另一个写成存储过程
下面是我写的一个例子, 你大概看下吧!create function test(@Num varchar(20))
returns varchar(50)
as
begin
declare @MSG varchar(20)
if(@Num=1)
select @MSG='正确'
else
select @MSG='错误'
return @MSG
endcreate proc test1
(
@id varchar(20)
)
as
begin
select dbo.test(@id)
endexec test1 @id=1
create proc proc_test
@p1 int = 0,
@p2 int output
as
select @p2 = @p1 *2
go --调用
declare @p2_output int execute proc_test 50, @p2_output output
select @p2_output
go drop proc proc_test输出得100
string myStr = ConfigurationManager.AppSettings["connectionstring"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
myConn.Open(); //创建SqlCommand对象
SqlCommand cmd = new SqlCommand("CheckUser",myConn);
cmd.CommandType = CommandType.StoredProcedure; //添加参数
SqlParameter Userid = cmd.Parameters.Add("@Userid", SqlDbType.Char);
SqlParameter Userpsw= cmd.Parameters.Add("@Userpsw", SqlDbType.Char);
SqlParameter returnvalue = cmd.Parameters.Add("@returnvalue", SqlDbType.Int);
//指定参数是只可输入(Input)、输出(Output)还是返回值(ReturnValue)
Userid.Direction = ParameterDirection.Input;
Userpsw.Direction = ParameterDirection.Input;
returnvalue.Direction = ParameterDirection.ReturnValue;
//为传递给存储过程的参数赋值
Userid.Value =tbUserName.Text.Trim();
Userpsw.Value = tbPsw.Text.Trim(); //执行SQL存储过程
cmd.ExecuteNonQuery();
int Maxid=((int)returnvalue.Value;
你看看这个,对你有帮助。