WEB开发网
开发学院数据库MSSQL Server 存储过程与 SQL Server语句大比拼 阅读

存储过程与 SQL Server语句大比拼

 2007-05-17 09:36:05 来源:WEB开发网   
核心提示: 注:把命令的参数添加进去,就可以了,存储过程与 SQL Server语句大比拼(3),⑦重新验证SQL命令执行是否成功,CREATE PROCEDURE dbo.AXzhz/*@parameter1 用户名@parameter2 新密码*/@password nvarchar(20),@u

注:把命令的参数添加进去,就可以了。

⑦重新验证SQL命令执行是否成功。

CREATE PROCEDURE dbo.AXzhz
/*
 @parameter1 用户名
 @parameter2 新密码
*/
@password nvarchar(20),
@userName nvarchar(20)
AS
declare @err0 int
update WL_user set password=@password where UserName=@userName
set @err0=@@error
select @err0 as err0

注:先声明一个整型变量@err0,再给其赋值为@@error(这个是系统自动给出的语句是否执行成功,0为成功,其它为失败),最后通过select把它选择出来。

⑧那怎么从后台获得这个执行成功与否的值:

下面这段代码可以告诉你答案:

public static string GetCustomerCName()
    {
      SqlConnection con=ADConnection.createConnection();
      
      SqlCommand cmd=new SqlCommand("AXzhz",con);
      cmd.CommandType=CommandType.StoredProcedure;
      para0=new SqlParameter("@startDate","2006-9-10");
      para1=new SqlParameter("@endDate","2006-9-20");
      da.SelectCommand.Parameters.Add(para0);
      da.SelectCommand.Parameters.Add(para1);
      con.Open();
      try
      {
        Int32 re=(int32)cmd.ExecuteScalar();
        con.Close();
        if (re==0)
         return "OK!";
        else
         return "false";
      }
      catch(Exception ex)
      {
        con.Close();
        return ex.ToString();
      }
    }

注:就是通过SqlCommand的ExecuteScalar()方法取回这个值。

⑨我要根据传入的参数判断执行哪条SQL语句:

ALTER PROCEDURE dbo.selectCustomerCNameCount
@customerID int
AS
if @customerID=-1
begin
select contentownerid ,userCName,count(*)
as countAll from view_usercomment group by
contentownerid,userCName order by contentownerid DESC
end
else
begin
select contentownerid ,userCName,count(*)
as countAll from view_usercomment where
contentownerid=@customerID group by contentownerid
,userCName order by contentownerid DESC
end

上一页  1 2 3 

Tags:存储 过程 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接