`
朱嘉华
  • 浏览: 236332 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

sql 存储过程实例

阅读更多
①为什么要使用存储过程?
因为它比SQL语句执行快.

②存储过程是什么?
把一堆SQL语句罗在一起,还可以根据条件执行不通SQL语句.(AX写作本文时观点)

③来一个最简单的存储过程
CREATE PROCEDURE dbo.testProcedure_AX
AS
select userID from USERS order by userid desc

注:dbo.testProcedure_AX是你创建的存储过程名,可以改为:AXzhz等,别跟关键字冲突就行了.AS下面就是一条SQL语句,不会写SQL语句的请回避.

④我怎么在ASP.NET中调用这个存储过程?
下面黄底的这两行就够使了.
        public static string GetCustomerCName(ref ArrayList arrayCName,ref ArrayList arrayID)
        {
            SqlConnection con=ADConnection.createConnection();
            SqlCommand cmd=new SqlCommand("testProcedure_AX",con);
            cmd.CommandType=CommandType.StoredProcedure;
            con.Open();
            try
            {
                SqlDataReader dr=cmd.ExecuteReader();
                while(dr.Read())
                {
                    if(dr[0].ToString()=="")
                    {
                        arrayCName.Add(dr[1].ToString());
                    }
                }
                con.Close();
                return "OK!";
            }
            catch(Exception ex)
            {
                con.Close();
                return ex.ToString();
            }
        }
注:其实就是把以前
SqlCommand cmd=new SqlCommand("select userID from USERS order by userid desc",con);
中的SQL语句替换为存储过程名,再把cmd的类型标注为CommandType.StoredProcedure(存储过程)

⑤写个带参数的存储过程吧,上面这个简单得有点惨不忍睹,不过还是蛮实用的.
参数带就带两,一个的没面子,太小家子气了.

CREATE PROCEDURE dbo.AXzhz
/*
这里写注释
*/
@startDate varchar(16),
@endDate varchar(16)
AS
select id  from table_AX where commentDateTime>@startDate and commentDateTime<@endDate order by contentownerid DESC

注:@startDate varchar(16)是声明@startDate 这个变量,多个变量名间用【,】隔开.后面的SQL就可以使用这个变量了.

⑥我怎么在ASP.NET中调用这个带参数的存储过程?

public static string GetCustomerCNameCount(string startDate,string endDate,ref DataSet ds)
{
            SqlConnection con=ADConnection.createConnection();
//-----------------------注意这一段--------------------------------------------------------------------------------------------------------
            SqlDataAdapter da=new SqlDataAdapter("AXzhz",con);

            para0=new SqlParameter("@startDate",startDate);
            para1=new SqlParameter("@endDate",endDate);
            da.SelectCommand.Parameters.Add(para0);
            da.SelectCommand.Parameters.Add(para1);
            da.SelectCommand.CommandType=CommandType.StoredProcedure;
//-------------------------------------------------------------------------------------------------------------------------------


            try
            {
                con.Open();
                da.Fill(ds);
                con.Close();
                return "OK";
            }
            catch(Exception ex)
            {
                return ex.ToString();
            }           
        }

注:把命令的参数添加进去,就OK了
鸟的,改字体颜色的东西太垃圾了,改不好,大家凑活着看.

⑦我还想看看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把它选择出来,某位高人说可以通过Return返回,超出本人的认知范围,俺暂时不会,以后再补充吧

⑧那怎么从后台获得这个执行成功与否的值呢?
下面这段代码可以告诉你答案:
    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()方法取回这个值,这句话是从MSDN上找的,俺认为改成:
     int re=(int)cmd.ExecuteScalar();  99%正确,现在没时间验证,期待您的测试!!!

⑨我要根据传入的参数判断执行哪条SQL语句!!~
下面这个存储过程可以满足我们的要求,竟然是Pascal/VB的写法,Begin----End ,不是{},,,对使用C#的我来说,这个语法有点恶心.........

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

好了,俺的水平只止于此,也够菜鸟们喝一壶的了,还有更多东西等着我们去发现,无尽的征途!!!!!!!!!!!


分享到:
评论

相关推荐

    SQL存储过程实例.doc

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被命名并保存,然后在需要的时候调用,极大地提高了SQL代码的重用性和执行效率。在这个实例中,我们看到一个名为`Sum_wage`的存储过程,它的...

    sql存储过程实例

    简单的oracle存储过程demo,可以参照写法写个存储过程玩玩

    SQL存储过程实例

    ### SQL存储过程实例知识点 #### 一、存储过程概述 存储过程是预编译的一组SQL语句集合,存储在数据库服务器上,可以接受输入参数并返回一个或多个结果集或者返回值。它能增强代码的重用性和共享性,并且能够减少...

    SQL存储过程实例.rar

    在这个“SQL存储过程实例.rar”压缩包中,我们很可能会找到一系列关于如何设计、创建、执行和管理SQL存储过程的实际示例。 SQL存储过程的优点在于它们可以提高性能,因为它们只需要编译一次,然后在后续的调用中...

    sql试题及答案,sql 行列转换,sql存储过程实例

    通过学习这些SQL试题、行列转换技巧和存储过程实例,你可以全面提升SQL技能,无论是日常的数据查询还是复杂的业务逻辑处理,都能得心应手。在实际工作中,不断练习和探索,将理论知识转化为实践能力,是成为SQL高手...

    VB SQL存储过程实例

    ### VB SQL存储过程实例解析与应用 在信息技术领域,尤其是软件开发中,集成数据库操作是常见且关键的需求之一。Visual Basic(简称VB)作为一种广泛使用的编程语言,提供了强大的功能来处理数据库事务,其中就包括...

    sql存储过程实例下载

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库中,可以在需要时调用执行,提高了数据库操作的效率和灵活性。在这个实例中,我们看到一个关于学校图书馆借书信息...

    SQL存储过程实例,很详细的

    查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示

    SQL Server 存储过程与实例

    SQL Server的存储过程是数据库管理系统中的一个重要特性,它是一组预先定义并编译好的SQL语句,用于执行特定的任务。存储过程的使用极大地提升了数据库应用的效率和安全性。以下是关于SQL Server存储过程的详细说明...

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    SQL存储过程与C#的结合

    SQL存储过程与C#的结合 Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex10_86", "Ex10_86\Ex10_86.csproj", "{0CB...

    sqlserver存储过程语法及实例

    SQL Server 存储过程语法及实例 SQL Server 存储过程是一种 powerful 的数据库对象,它可以封装复杂的业务逻辑,并且提供了高效、安全和灵活的方式来管理数据。存储过程可以看作是一种特殊的函数,它可以接受输入...

    sql存储过程

    `SQL存储过程实例.docx`可能包含各种数据库系统中的存储过程使用案例,帮助读者理解不同场景下存储过程的应用。 `spring_MVC.pdf`则可能是Spring MVC框架的详细教程,除了介绍如何使用存储过程外,还可能涵盖了...

    学习sql存储过程的心得

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库...每个压缩包文件可能包含了对这些知识点的深入讲解或实例,通过阅读和实践,你可以更深入地理解和应用SQL存储过程。

    SQL 存储过程发送HTTP请求

    ### SQL存储过程发送HTTP请求知识点解析 在数据库管理和应用程序开发中,经常需要实现数据库与外部系统之间的交互。其中一种常见的需求就是从SQL Server中的存储过程发起HTTP请求来获取或发送数据。这种技术不仅...

    sql 存储过程的学习 和实例

    本篇文章将深入探讨SQL存储过程的学习与实例,以帮助你更好地理解和应用这一强大的数据库编程工具。 一、SQL存储过程的概念与优势 1. 存储过程是一种预编译的SQL语句集,它封装了复杂的业务逻辑,允许一次性提交多...

    db2 存储过程语法与实例

    下面我们将详细探讨DB2存储过程的语法、创建、调用以及一些实用实例。 1. **存储过程的语法** 创建DB2存储过程的基本语法如下: ```sql CREATE PROCEDURE procedure_name (IN input_param1 datatype, INOUT ...

    mysql存储过程实例

    MySQL 存储过程实例 MySQL 存储过程实例详细介绍了 MySQL 存储过程的开发步骤,本节将通过具体的实例讲解 PHP 是如何操纵 MySQL 存储过程的。 创建存储过程 存储过程的创建是 MySQL 存储过程的基础,MySQL 5.0 ...

    存储过程实例+SQL2008完全自学手册

    《存储过程实例+SQL2008完全自学手册》是一本深入浅出的数据库管理教程,专注于SQL Server 2008中的存储过程这一核心功能。存储过程是SQL Server数据库系统中的一个重要组成部分,它是一组预编译的SQL语句集合,能够...

Global site tag (gtag.js) - Google Analytics