概述2007-01-27 08:37 P.M.例如在向数据库添加新数据时,需要检测是否有重复本例介绍如何把这个检测的过程放在存储过程中,并用程序调用检测的结果做出反应。存储过程如下:CREATE PROCEDURE DInstitute_Insert@InstituteNO nvarchar(6),@InstituteName nvarchar(40) ASdeclare @return int,@count intif(ltrim(rtrim(@InstituteName))='' or ltrim(rtrim(@InstituteNO))='') select @return=3--返回3表示提交的数据有空值elsebegin select @count=count(1) from DInstitute where InstituteNO=@InstituteNO if(@count>0) select @return=1--返回1表示编号有重复 else begin insert into DInstitute (InstituteNO,InstituteName) values (@InstituteNO,@InstituteName) if(@@error>0) select @return=2--返回2表示数据 *** 作错误 else select @return=0--返回0表示数据 *** 作成功 endendreturn @returnGO其中DInstitute 是一个学院信息表。只有InstituteNO(学院编号)、InstituteName(学院名称)两个字段。在C#中调用本存储过程的代码如下://执行插入 *** 作 SqlCommand com1 = new SqlCommand("DInstitute_Insert", DBcon); if (com1.Connection.State == ConnectionState.Closed) com1.Connection.Open(); com1.CommandType = CommandType.StoredProcedure; com1.Parameters.Add(new SqlParameter("@InstituteNO",SqlDbType.NVarChar,6)); com1.Parameters.Add(new SqlParameter("@InstituteName", SqlDbType.NVarChar, 40)); com1.Parameters.Add(new SqlParameter("@return", SqlDbType.Int)); com1.Parameters["@return"].Direction = ParameterDirection.ReturnValue; com1.Parameters["@InstituteNO"].Value = t_NO.Text; com1.Parameters["@InstituteName"].Value = t_name.Text; try { com1.ExecuteScalar(); } catch(SqlException ee) { DB.msgbox(" *** 作失败!"+ee.Message.ToString()); return; } finally { com1.Connection.Close(); } string temp = com1.Parameters["@return"].Value.ToString(); //返回0表示数据 *** 作成功 //返回1表示编号有重复 //返回2表示数据 *** 作错误 //返回3表示提交的数据有空值 switch (temp) { case "0": DB.msgbox("添加成功!"); break; case "1": DB.msgbox("编号有重复!"); break; case "2": DB.msgbox("数据 *** 作错误!"); break; case "3": DB.msgbox("提交的数据有空值!"); break; } Binding(); //刷新datagrid
<div >2007-01-27 08:37 P.M.
<table >
<tr>
<td>
<div >
<div >例如在向数据库添加新数据时,需要检测是否有重复本例介绍如何把这个检测的过程放在存储过程中,并用程序调用检测的结果做出反应。存储过程如下:
0) select @return=1--返回1表示编号有重复 else begin insert into DInstitute (InstituteNO,Institutename) values (@InstituteNO,@Institutename) if(@@error>0) select @return=2--返回2表示数据 *** 作错误 else select @return=0--返回0表示数据 *** 作成功 endendreturn @returnGO
以上是内存溢出为你收集整理的C#中使用带返回值的存储过程全部内容,希望文章能够帮你解决C#中使用带返回值的存储过程所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
评论列表(0条)