2010年02月27日 星期六 23:52
假设表结构
Create Table Table_1 ( tid int identity(1,1), number int ) 1.调用无参无返回值的存储过程 假设存储过程如下: Create PROC proc_1 AS Insert Table_1(number) Values(100) GO 调用方法: public static void exec_proc_1() { SqlCommand cmd = new SqlCommand("proc_1", con);//proc_1为存储过程名,con为已经建立好的连接 cmd.CommandType = CommandType.StoredProcedure;//设置执行类型为执行存储过程 cmd.ExecuteNonQuery(); } 2.调用有参有返回值的存储过程 假设存储过程如下: Create PROC proc_2 @result int output,//要返回的参数 @number int, @tid int AS Update Table_1 Set number=number+@number Where tid=@tid Select @result=number From Table_1 GO 调用方法: public static int exec_proc_2(int number, int tid) { SqlCommand cmd = new SqlCommand("proc_2", con);//同上 cmd.CommandType = CommandType.StoredProcedure;//同上 cmd.Parameters.Add(new SqlParameter("@result", SqlDbType.Int));//添加一个名为@result的参数,数据类型为SqlDbType.Int cmd.Parameters["@result"].Direction = ParameterDirection.Output;//将@result参数设置成为接收输出参数 cmd.Parameters.AddWithValue("@number", number); cmd.Parameters.AddWithValue("@tid", tid); cmd.ExecuteNonQuery(); int result = (int)cmd.Parameters["@result"].Value;//将输出的Object数据转换成int类型 return result; } 3.调用返回一张表的存储过程并接收 假设存储过程如下 Create PROC proc_3 AS Select * From Table_1--查询一张表 GO 调用方法: public static DataTable exec_proc_3() { SqlCommand cmd = new SqlCommand("proc_3", con);//同上 cmd.CommandType = CommandType.StoredProcedure;//同上 SqlDataAdapter da = new SqlDataAdapter(cmd);//用SqlDataAdapter执行 DataTable table = new DataTable();//创建一张表 da.Fill(table);//填充表 return table; } |