在这个项目中 ,之前都是用强哥已经写好的存储过程 ,但是自己没怎么写过 ,刚好最近在需要都是自己一条龙服务的过程中 ,需要写到存储过程 ,刚开始学 ,对于一个做了开发两年的程序员来说 ,实在不应该不会 ,所以为了让自己记住 ,写下随笔 。
这条的作用就是先检查是否存在永远的数据 ,如果存在 ,则不执行insert操作,否则执行insert操作 。
USE [MicroBlog] GO /****** Object: StoredProcedure [dbo].[Proc_InsertGuest] Script Date: 09/28/2012 10:40:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[Proc_InsertGuest] ( @VID INT, @Gest varchar(20) , @rc AS BIT OUTPUT ) AS BEGIN IF NOT EXISTS (SELECT * FROM VGuest v WHERE v.VID=@VID AND v.Gest=@Gest) BEGIN INSERT INTO VGuest ( VID,Gest ) VALUES ( @vid,@Gest ) SET @rc = 0 END ELSE BEGIN SET @rc = 1 END END
代码很简单 ,@vid,@Gest是作为传入的参数 ,@rc则是output的参数 ,在程序中只需要接收这个值就可以直接使用。
/// <summary> /// 添加嘉宾 /// </summary> /// <param name="Vid"></param> /// <param name="guestID"></param> /// <returns></returns> public int addGuset(int Vid, string Gest) { try { String Query = "Proc_InsertGuest"; SqlParameter[] Parms = { new SqlParameter("@VID",Vid), new SqlParameter("@Gest",Gest), new SqlParameter( "@rc","") }; Parms[2].Direction = ParameterDirection.Output; db.AddParameter(Parms); db.ExecuteScalar(Query, CommandType.StoredProcedure, connState); return Convert.ToInt32(Parms[2].Value); } catch (Exception ex) { throw new Exception("添加微访谈嘉宾失败!\n" + ex.Message); } }