IF EXISTS (SELECT name FROM sysobjects WHERE name = 'Proc_Unite_Delete' AND type = 'P') DROP PROCEDURE Proc_Unite_Delete GO CREATE PROCEDURE Proc_Unite_Delete @UniteID INT, @Return VARCHAR(300) OUTPUT AS DECLARE @Ccount int, @Pcount int SELECT @Ccount=COUNT(*) FROM C_Physician WHERE UniteID=@UniteID SELECT @Pcount=COUNT(*) FROM Physician WHERE UniteID=@UniteID --SELECT @Ccount --SELECT @Pcount IF exists(SELECT * FROM Unite WHERE UniteID=@UniteID) AND @Ccount=0 AND @Pcount=0 BEGIN DELETE FROM Unite WHERE UniteID=@UniteID SET @Return='成功' --PRINT 'OK' RETURN 1 END SET @Return='不成功' --PRINT 'NO' RETURN 0 GO ---测试代码 DECLARE @srturn VARCHAR(300) ,@id int set @id=6 EXEC Proc_Unite_Delete 6,@Return=@srturn OUTPUT SELECT @srturn



c#2.0 CODE:


DialogResult dr =MessageBox.Show("是否真的要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { try { DBConnectioin dbc = new DBConnectioin(); SqlConnection conn = new SqlConnection(DBConnectioin.conStr); conn.Open(); SqlCommand cmd = new SqlCommand("Proc_Unite_Delete", conn);//调用存储过程 cmd.CommandType = CommandType.StoredProcedure; SqlParameter pares = new SqlParameter("@UniteID", SqlDbType.Int, 8);//输入参数 SqlParameter pares1 = new SqlParameter("@Return", SqlDbType.VarChar, 30);//输出参数 cmd.Parameters.Add(pares); cmd.Parameters.Add(pares1); cmd.Parameters["@UniteID"].Value = Int32.Parse(this.txtUniteID.Text.Trim()); cmd.Parameters["@Return"].Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); String Retur = (string)cmd.Parameters["@Return"].Value; conn.Close(); MessageBox.Show("删除"+Retur, "提示"); this.FrmUnite_Load(sender, e); } catch (Exception ex) { }