存储过程的分析
1 // 对存储过程的分析:实例
2 // string g_name ,string g_password为传递给此存储过程的参数,string loging表示方法名和类型
3
4 public string login( string g_name , string g_passord)
5 {
6
7 sqlconnection conn = new sqlconnection(configurationsettings.appesettings[ " connectionstring " ]);
8 // 此为连接语句
9 /**/ /*
10 configurationsettings.appesettings["connectionstring"]
11 表示从configurantion加载了一条连接语句
12 config里的语句为
13 <appsettings>
14 <add key="connectionstring" value="server=localhost;uid=sa;pwd=sa; database= global" />
15 </appsettings>
16 <system.web>
17 注意此标是放在<system.web>的上面
18 */
19 sqlcommand comm = new sqlcommand( " login " ,conn);
20 // 新建一个sqlcommand的实例comm并把它标记为储蓄过程名为login。
21
22 comm.commandtype = commandtype.storedprocedure;
23 // 将comm标记为储蓄过程
24
25
26
27 // 下面为存储过程添加参数
28 sqlparameter parameterg_name = new sqlparameter( " @g_name " ,sqldbtype.nvarchar, 20 );
29 // 新建了一个sqlparameter的储蓄过程参数实例:实例名为pranmeterg_name
30 // 并定义了一个名为"@g_name"的参数名,定义类型sqldbtype为nvarchar 字节数为20;
31
32 parameterg_name.value = g_name;
33 // 为参数实例parameterg_name赋值 为这个值是从方法login中传递进来的值
34 // 注意parameterg_name.value=g_name 中的g_name和语句new sqlparameter("@g_name",sqldbtype.nvarchar,20);
35 // 中的@g_name是不同,@g_name是为一个sqlparameter的储蓄过程定义的一个参数名
36
37 comm.parameters.add(prarameterg_name);
38 // 为comm为添加参数paratemterg_name
39
40
41
42
43 sqlparameter parameterg_password = new sqlparameter( " @g_password " ,sqldbtype.nvarchar, 20 );
44 parameterg_password.value = g_password;
45 comm.parameters.add(parameterg_password);
46
47 sqlparameter parameterg_id = new sqlparameter( " @g_id " ,sqldbtype.int, 4 );
48 parameterg_id.direction = parameterdirection.output;
49 // parameterg_id.ddirection 获取或者设置一个值,该值指示指示参数是只可
50 // 只可以输入,只可以输出,双向 还是存储过程返回值参数
51 // parameterdirection.output;定义了此参数为输出参数
52 comm.parameters.add(paramerg_id);
53
54 // 打开连接并执行command命令
55 conn.open();
56 comm.executenonquery();
57 conn.close();
58
59 // 对获得parameterg_id.value的值进行处理
60 int g_id = ( int )(parameterg_id.value);
61
62 if (g_id == 0 )
63 {
64 return null ;
65 // 返回空
66 }
67 else
68 {
69 g_id.tostring();
70 // 将此信息转换为等效字符串的表现形势
71 }
http://www.cnblogs.com/chenhui3344/archive/2006/10/30/544787.html