一: 执行不带返回参数(Input)的存储过程
02. 1: 首先在数据库写个存储过程, 如创建个 addUser存储过程。
03. Create Proc addUser
04. @ID int,
05. @Name varchar(20),
06. @Sex varchar(20)
07. As
08. Insert Into Users Values( @ID, @Name,@Sex )
09.
10. 2:创建SqlCommand对象,并初始SqlCommand对象 如:
11. SqlCommand cmd = new SqlCommand( );
12. cmd.CommandText = "addUser"; // 制定调用哪个存储过程
13. cmd.CommandType = CommandType.StoredProcedure; // 制定Sql命令类型是存储过程, 默认的为Sql语句。
14. cmd.Connection = con; // 设定连接
15. 3:向SqlCommand对象添加存储过程参数
16. SqlParameter param = new SqlParameter( ); // 定义一个参数对象
17. param.ParameterName = "@ID"; // 存储过程参数名称
18. param.Value = txtID.Text.Trim(); // 该参数的值
19. cmd.Parameters.Add( param ); // SqlCommand对象添加该参数对象
20. param = new SqlParameter( "@Name", txtName.Text.Trim() ); // 简写方式
21. cmd.Parameters.Add( param );
22. 4:SqlCommand对象调用执行Sql的函数。 如:
23. cmd.ExecuteNonQuery();
24.
25. 二:执行带返回参数(Output)的存储过程
26. 1: 首先在数据库写个存储过程, 如创建个 queryUser存储过程。
27. alter Proc queryUser
28. @ID int,
29. @Suc varchar(10) output
30. As
31. select @Suc = 'false'
32. if exists( Select * From users where u_id = @ID )
33. select @Suc = 'success'
34. 2:创建SqlCommand对象,并初始SqlCommand对象 如:
35. SqlCommand cmd = new SqlCommand( );
36. cmd.CommandText = "queryUser"; // 制定调用哪个存储过程
37. cmd.CommandType = CommandType.StoredProcedure; // 制定Sql命令类型是存储过程, 默认的为Sql语句。
38. cmd.Connection = con; // 设定连接
39. 3:向SqlCommand对象添加存储过程参数
40. SqlParameter param1 = new SqlParameter( "@ID", txtID.Text ); // 添加输入参数
41. cmd.Parameters.Add( param1 );
42. SqlParameter param2 = new SqlParameter(); // 添加输出参数
43. param2.ParameterName = "@Suc"; // 名称
44. param2.SqlDbType = SqlDbType.VarChar; // 输出参数的Sql类型
45. param2.Size = 10; // 输出参数的Sql类型大小
46. param2.Direction = ParameterDirection.Output; // 指定该参数对象为输出参数类型
47. cmd.Parameters.Add( param2 );
48. 4:SqlCommand对象调用执行Sql的函数。 如:
49. cmd.ExecuteNonQuery();
50. MessageBox.Show( param2.Value.ToString() ); // 输出输出参数的值
51.输入参数的存储过程的示例:
52. try
53. {
54. SqlCommand cmd = new SqlCommand();
55. cmd.Connection = con;
56. cmd.CommandType = CommandType.StoredProcedure;
57. cmd.CommandText = "addUser";
58.
59. SqlParameter param = new SqlParameter( );
60. param.ParameterName = "@ID";
61. param.Value = txtID.Text.Trim();
62. cmd.Parameters.Add( param );
63. param = new SqlParameter( "@Name", txtName.Text.Trim() );
64. cmd.Parameters.Add( param );
65. param = new SqlParameter();
66. param.ParameterName = "@Sex";
67. param.Value = txtSex.Text.Trim();
68. cmd.Parameters.Add( param );
69. //da.InsertCommand = cmd;
70.
71. if ( cmd.ExecuteNonQuery() == 1 )
72. {
73. MessageBox.Show( "添加成功" );
74. }
75. else
76. {
77. MessageBox.Show("失败");
78. }
79. }
80. catch( SqlException ex )
81. {
82. MessageBox.Show( ex.Message );
83. }
84.
85.输出参数的存储过程的示例:
86. try
87. {
88. SqlCommand cmd = new SqlCommand( );
89. cmd.CommandText = "queryUser";
90. cmd.CommandType = CommandType.StoredProcedure;
91. cmd.Connection = con;
92.
93. SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );
94. cmd.Parameters.Add( param1 );
95. SqlParameter param2 = new SqlParameter();
96. param2.ParameterName = "@Suc";
97. param2.SqlDbType = SqlDbType.VarChar;
98. param2.Size = 10;
99. param2.Direction = ParameterDirection.Output;
100. cmd.Parameters.Add( param2 );
101.
102. cmd.ExecuteNonQuery();
103.
104. MessageBox.Show( param1.Value.ToString() );
105. MessageBox.Show( param2.Value.ToString() );
106. }
107. catch( SqlException ex )
108. {
109. MessageBox.Show( ex.Message );
110. }
111.
第三章
最新推荐文章于 2024-09-26 22:56:39 发布