当前位置: 代码迷 >> ASP.NET >> |M| 一个存储过程在ASP.net里面要如何用  多谢  
  详细解决方案

|M| 一个存储过程在ASP.net里面要如何用  多谢  

热度:134   发布时间:2013-02-26 00:00:00.0
|M| 一个存储过程在ASP.net里面要怎么用  谢谢  急
我表有
table11
id       name

这是CSDN朋友给的返回ID的存储过程
CREATE   PROCEDURE   [insert_Table11_1]
(
@name_1   [nvarchar](50),
@OutID   int   output
)

AS  
INSERT   INTO   [HotelBook].[dbo].[Table11]  
  (   [name])    
VALUES  
(   @name_1)

SET   @OutID   =   (SELECT   scope_identity()   )
GO

然后我的代码如下:
ASP.net执行:
SqlConnection   conn=new   SqlConnection(“connectionString”);
SqlCommand   com   =   new   SqlCommand();
com.Connection=conn;
com.CommandText= "insert_Table11_1 "
com.CommandType   =   CommandType.StoredProcedure;
??然后下面是怎么写的我是返回addid=添加返回的值
能不能帮我写完不整 
谢谢

------解决方案--------------------------------------------------------
SqlParameter parameter = new SqlParameter( "@OutID ", SqlDbType.Int32);
parameter.Direction = ParameterDirection.Output;
com.Parameters.Add(parameter);
com.Connection.Open();
com.ExecuteNonQuery();
int outID = (int)com.Parameters[ "@OutID "].value; // 获得返回值
com.Connection.Cloase();

------解决方案--------------------------------------------------------
value 应是 Value
sorry
------解决方案--------------------------------------------------------
还有那里是 SqlDbType.Int 不是 Int32
------解决方案--------------------------------------------------------
就差传入参数了
com.Parameters.Add( "@name_1 ", SqlDbType.NVarChar, 50);
com.Parameters[ "@name_1 "].Value = someString; // someString 替换成你提供的传入字符串2.0 的话可以直接
com.Parameters.AddWithValue( "@name_1 ", someString);
------解决方案--------------------------------------------------------
详细的例子
http://www.5d.cn/Tutorial/webdevelop/.net/200412/1960
------解决方案--------------------------------------------------------
上面的代码少传了一个参数@name_1
------解决方案--------------------------------------------------------
SqlConnection conn=new SqlConnection(“connectionString”);
SqlCommand com = new SqlCommand();
com.Connection=conn;
com.CommandText= "insert_Table11_1 " //这里应该是你的存储过程名 insert_Table11_1
com.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameter = { new SqlParameter( "@name_1 ", SqlDbType.NVarChar, 50), new SqlParameter( "@OutID ", SqlDbType.Int32)};
parameter[0].Value = name_1; //假设这个变量是你再前面定义获取的
parameter[1].Direction = ParameterDirection.Output;
com.Parameters.Add(parameter[0]);
com.Parameters.Add(parameter[1]);
com.Connection.Open();
com.ExecuteNonQuery();
int outID = Convert.ToInt32(Parameters[1].value); // 获得返回值
com.Connection.Cloase();
  相关解决方案