1
using System;2
using System.Collections.Generic;3
using System.Text;4
using System.Data;5
using System.Data.SqlClient;6

7
namespace StoreProduceTest8


{9
public class Program10

{11

/**//**12
* 存储过程13
* 14
* create procedure queryStuNameById15
@stuId varchar(10),--输入参数16
@stuName varchar(10) output --输出参数17
as 18
select @stuName=stuName from stuInfo where stuId=@stuId19
* 20
*/21

22

23
static void Main(string[] args)24

{25
Operater op = new Operater();26
string name = op.QueryStuNameById("1234");27

28
Console.WriteLine(string.Format("学号为1234的学生的姓名为{0}", name));29
}30

31
}32

33
public class Operater34

{35
private string ConStr = "server=.;database=User;uid=sa;pwd=1234";36
private SqlConnection sqlCon = null;37
private SqlCommand sqlComm = null;38
SqlDataReader dr = null;39

40
public string QueryStuNameById(string Id)41

{42

43
string name = "";44

45
try46

{47
using (sqlCon = new SqlConnection(ConStr))48

{49

50
sqlCon.Open();51
sqlComm = new SqlCommand("queryStuNameById", sqlCon);52
//设置命令的类型为存储过程53
sqlComm.CommandType = CommandType.StoredProcedure;54

55
//设置参数56
sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);57
//注意输出参数要设置大小,否则size默认为0,58
sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);59
//设置参数的类型为输出参数,默认情况下是输入,60
sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;61

62
//为参数赋值63
sqlComm.Parameters["@stuId"].Value = "1234";64
//执行65
sqlComm.ExecuteNonQuery();66
//得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换67
name = sqlComm.Parameters["@stuName"].Value.ToString();68

69
}70

71
}72
catch (Exception ex)73

{74

75
Console.WriteLine(ex.ToString());76
}77
return name;78

79
}80
}81

82
}83

84

浙公网安备 33010602011771号