你的位置:首页 > ASP.net教程

[ASP.net教程]c#调用带输出参数的存储过程


sql server中编写一个存储过程:

  1. CREATE PROCEDURE ProGetPWD  
  2.    @username varchar(20),  
  3.    @password varchar(20) OUTPUT  
  4. AS  
  5. BEGIN  
  6.    SELECT @password = password   
  7.    FROM Users   
  8.    WHERE username = @username  
  9. END  

--------------------------

下面是.NET中调用存储过程的方法:

  1. string strConnection = "user id=sa;password=sa;initial catalog=MyTest;Server=YHB;Connect Timeout=30";  
  2.             using (SqlConnection conn = new SqlConnection(strConnection))  
  3.             {  
  4.                 conn.Open();  
  5.                 using (SqlCommand sqlComm = conn.CreateCommand())  
  6.                 {  
  7.                     //设置要调用的存储过程的名称  
  8.                     sqlComm.CommandText = "GetPWD";  
  9.                     //指定SqlCommand对象传给数据库的是存储过程的名称而不是sql语句  
  10.                     sqlComm.CommandType = CommandType.StoredProcedure;  
  11.   
  12.                     SqlParameter username = sqlComm.Parameters.Add(new SqlParameter("@username", SqlDbType.VarChar, 20));  
  13.                     //指明"@username"是输入参数  
  14.                     username.Direction = ParameterDirection.Input;  
  15.                     //为“@username”参数赋值  
  16.                     username.Value = this.txt_username.Text;  
  17.   
  18.                     SqlParameter password = sqlComm.Parameters.Add(new SqlParameter("@password", SqlDbType.VarChar, 20));  
  19.                     //指定"@password"为输出参数  
  20.                     password.Direction = ParameterDirection.Output;  
  21.                     //执行  
  22.                     sqlComm.ExecuteNonQuery();  
  23.                     //得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换  
  24.                     string passwrod = Convert.ToString(sqlComm.Parameters["@password"].Value);  
  25.                     MessageBox.Show(passwrod);  
  26.                 }  
  27.             }