先简单的说说什么是存储过程:存储过程就是固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高执行效率、提高数据库的安全性、减少网络流量。接下来就讲解如何在数据库中建立一个存储过程。
打开SQL2055数据库,展开“数据库”节点,找到你使用的数据库(目的数据库),展开该数据库节点,找到“可编程性”节点并展开,就可以看到“存储过程”了,在“存储过程”上点击右键,新建存储过程。然后会弹出查询分析器,在这输入创建代码就可以了。
这个存储过程可以向SystemUsers表中插入一条记录。
///------------------------------------------------------------------------------------------------------------------------------------------
http://www.cnblogs.com/mgod/archive/2008/08/02/1258585.html --T-SQL不带参数 if exists(select * from sysobjects where name='SelectStu') drop proc SelectStu GO create proc SelectStu as select * from student GO
--c# SqlCommand cmd = new SqlCommand("SelectStu",con); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader dr = cmd.ExecuteReader(); while(dr.Read()) { Console.WriteLine(dr["LoginId"]); }
--T-SQL 带一个参数 if exists(select * from sysobjects where name='SelectStu') drop proc SelectStu GO create proc SelectStu @name varchar(50) as select * from student where loginid=@name GO
--C# SqlCommand cmd = new SqlCommand("SelectStu",con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@name", "LiDifei"); SqlDataReader dr = cmd.ExecuteReader(); while(dr.Read()) { Console.WriteLine(dr["LoginId"]); }
--T-SQL 有返回值 if exists(select * from sysobjects where name='SelectStu') drop proc SelectStu GO create proc SelectStu @name varchar(50), @id int output as select @id=studentid from student where loginid=@name return @id GO
--C# SqlCommand cmd = new SqlCommand("SelectStu",con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@name", "LiDifei"); cmd.Parameters.Add("@id",SqlDbType.Int); cmd.Parameters["@id"].Direction = ParameterDirection.Output; cmd.ExecuteScalar(); Console.WriteLine(cmd.Parameters["@id"].Value);
-------------------------------------------------------------------------------------
//以前写过的一个调用存储过程的方法
public static int regInsert(string Pwd, int Friend, string NickName, int FaceID, string Sex, int Age, string Name, int starId, int BloodTypeId) { try { SqlConnection conn = createConnection(); conn.Open(); SqlCommand cmd = new SqlCommand("proc_reg", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@id",SqlDbType.Int); cmd.Parameters["@id"].Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@LoginPwd",Pwd); cmd.Parameters.AddWithValue("@FriendshipPolicyId",Friend); cmd.Parameters.AddWithValue("@NickName",NickName); cmd.Parameters.AddWithValue("@FaceID",FaceID); cmd.Parameters.AddWithValue("@Sex",Sex); cmd.Parameters.AddWithValue("@Age",Age); cmd.Parameters.AddWithValue("@Name",Name); cmd.Parameters.AddWithValue("@starId",starId); cmd.Parameters.AddWithValue("@BloodTypeId", BloodTypeId);
cmd.ExecuteNonQuery(); return (int)cmd.Parameters["@id"].Value; } catch (SqlException ex) { Console.WriteLine(ex.Message); } return 0; }