C#调用带参存储过程

来源:互联网 发布:淘宝面膜排行榜 编辑:程序博客网 时间:2024/06/05 19:27

1.存储过程如下:

 create procedure GetNameById
  (
   @strUserId varchar(10),--输入参数
   @strUserName varchar(10) output --输出参数
  )
 as
  select @strUserName=UserName from User where UserId=@strUserId

其中,存储过程GetNameById,表名User

2.调用过程

private string ConStr = "server=.;database=User;uid=sa;pwd=111";
private SqlConnection sqlCon = null;

private SqlCommand sqlComm = null;

public string GetNameById(string Id)
{
  
string name = "";
  
try
  {
    
using (sqlCon = new SqlConnection(ConStr))
    {
      sqlCon.Open();
      sqlComm 
= new SqlCommand("GetNameById", sqlCon);
      
//设置命令的类型为存储过程
      sqlComm.CommandType = CommandType.StoredProcedure;
      
//设置参数
      sqlComm.Parameters.Add("@strUserId", SqlDbType.VarChar);
      
//注意输出参数要设置大小,否则size默认为0,
      sqlComm.Parameters.Add("@strUserName", SqlDbType.VarChar, 10);
      
//设置参数的类型为输出参数,默认情况下是输入,
      sqlComm.Parameters["@strUserName"].Direction = ParameterDirection.Output;
      
//为参数赋值
      sqlComm.Parameters["@strUserId"].Value = "1234";
      
//执行
      sqlComm.ExecuteNonQuery();
      
//得到输出参数的值,把赋值给name
      name = sqlComm.Parameters["@stuName"].Value.ToString();
    }
   }
   
catch (Exception ex)
   {
      Console.WriteLine(ex.ToString());
   }
   
return name;
}

0 0
原创粉丝点击