C#使用SQL存储过程完整流程

C#使用SQL存储过程完整流程

转载  2016年12月08日 16:07:25

先简单的说说什么是存储过程:存储过程就是固化在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;
          
        }


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值