`

asp.net超简单存储过程的CRUD以及得到返回值,输出参数

阅读更多

存储过程代码

use tempDb
go

create table study
(
	id int primary key identity(1,1),
	name varchar(50),
	address varchar(50)
)
go

select * from study
go

insert into study values ('张三','浙江金华')

create procedure study_Query
as
	select * from study
go

execute study_Query 

create procedure study_Delete
@id int
as
	delete from study where id=@id
go

create procedure study_Update
@id int,
@name varchar(50),
@address varchar(50)
as
	update study set name=@name,address=@address where id=@id
go

create procedure study_Insert
@name varchar(50),
@address varchar(50)
as
	insert into study values (@name,@address)
go

 

   布局参考:

 

 

 .aspx文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            Style="margin-right: 1px" DataKeyNames="id,name,address" 
            onrowcancelingedit="GridView1_RowCancelingEdit" 
            onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 
            onrowupdating="GridView1_RowUpdating">
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="编号"  ReadOnly="true"/>
                <asp:BoundField DataField="name" HeaderText="名称" />
                <asp:BoundField DataField="address" HeaderText="地址" />
                <asp:CommandField ShowEditButton="true" EditText="编辑" HeaderText="编辑" />
                <asp:CommandField ShowDeleteButton="true" EditText="删除" HeaderText="删除" />
            </Columns>
        </asp:GridView>
        <br />
        姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        地址:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="提交" />
    </div>
    </form>
</body>
</html>

 

 

   .aspx.cs文件

  

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            StudyDataBinds();
        }
    }

    protected void StudyDataBinds()
    {
        this.GridView1.DataSource = DBHelp.GetAllStudy();
        this.GridView1.DataBind();
    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        Study study = new Study();
        study.Id = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex][0]);
        study.Name = (this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0] as TextBox).Text;
        study.Address = (this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0] as TextBox).Text;
        DBHelp.UpdStudy(study);
        this.GridView1.EditIndex = -1;
        StudyDataBinds();
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string id = this.GridView1.DataKeys[e.RowIndex][0].ToString();
        Study study = new Study();
        study.Id = Convert.ToInt32(id);
        DBHelp.DelStudy(study);
        StudyDataBinds();
    }

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        this.GridView1.EditIndex = -1;
        StudyDataBinds();
    }

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        this.GridView1.EditIndex = e.NewEditIndex;
        StudyDataBinds();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Study study = new Study();
        study.Name = this.TextBox1.Text;
        study.Address = this.TextBox2.Text;
        DBHelp.InsStudy(study);
        Server.Transfer("~/Default.aspx");
    }
}

 

  Model:

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

/// <summary>
///Study 的摘要说明
/// </summary>
 [Serializable]
public class Study
{
    public Study()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }

    private int id;

    public int Id
    {
        get { return id; }
        set { id = value; }
    }
    private string name;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    private string address;

    public string Address
    {
        get { return address; }
        set { address = value; }
    }

}

  

  DBHelp:

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.Collections;
using System.Collections.Generic;


/// <summary>
///DBHelp 的摘要说明
/// </summary>
public sealed class DBHelp
{
    private static String connString = ConfigurationManager.ConnectionStrings["sql2005"].ConnectionString;

    public DBHelp()
    {

    }

    /// <summary>
    /// 查询
    /// </summary>
    /// <returns></returns>
    public static IList<Study> GetAllStudy()
    {
        IList<Study> list = new List<Study>();
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand();
            adapter.SelectCommand.Connection = conn;
            adapter.SelectCommand.CommandText = "study_Query";
            adapter.SelectCommand.CommandType = CommandType.StoredProcedure;

            using (SqlDataReader reader = adapter.SelectCommand.ExecuteReader(CommandBehavior.CloseConnection))
            {
                while (reader.Read())
                {
                    Study study = new Study();
                    study.Id = Convert.ToInt32(reader["id"]);
                    study.Name = Convert.ToString(reader["name"]);
                    study.Address = Convert.ToString(reader["address"]);
                    list.Add(study);
                }
            }
        }
        return list;
    }

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="stu"></param>
    /// <returns></returns>
    public static int DelStudy(Study stu)
    {
        int result;
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.DeleteCommand = new SqlCommand();
            adapter.DeleteCommand.CommandText = "study_Delete";
            adapter.DeleteCommand.Parameters.Add("@id", SqlDbType.Int).Value = stu.Id;
            adapter.DeleteCommand.CommandType = CommandType.StoredProcedure;
            adapter.DeleteCommand.Connection = conn;
            result = adapter.DeleteCommand.ExecuteNonQuery();
        }
        return result;
    }

    /// <summary>
    /// 更新
    /// </summary>
    /// <param name="stu"></param>
    /// <returns></returns>
    public static int UpdStudy(Study stu)
    {
        int result;
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlCommand comm = new SqlCommand();
            comm.CommandText = "study_Update";
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.Add("@id", SqlDbType.Int).Value = stu.Id;
            comm.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = stu.Name;
            comm.Parameters.Add("@address", SqlDbType.VarChar, 50).Value = stu.Address;
            comm.Connection = conn;
            result = comm.ExecuteNonQuery();
        }
        return result;
    }

    /// <summary>
    /// 添加
    /// </summary>
    /// <param name="stu"></param>
    /// <returns></returns>
    public static int InsStudy(Study stu)
    {
        int result;
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlCommand comm = new SqlCommand();
            comm.CommandText = "study_Insert";
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = stu.Name;
            comm.Parameters.Add("@address", SqlDbType.VarChar, 50).Value = stu.Address;
            comm.Connection = conn;
            result = comm.ExecuteNonQuery();
        }
        return result;
    }

}

 

 通过StoreProcedure得到输出参数和返回值:

 

 

create table [user]
(
	uid int primary key  identity,
	uname varchar(50),
	upassword varchar(50)
)
go


insert into [user] values ('张三','123456')
insert into [user] values ('李四','123456')
insert into [user] values ('王五','123456')

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create procedure [dbo].[GetNameById]
@id int,
@name varchar(50) output
as
begin
	select @name=uname from [user] where uid=@id
	return 200
end
go

 

 

   

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        String connString = ConfigurationManager.ConnectionStrings["sql2005"].ToString();
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlCommand comm = new SqlCommand();
            comm.CommandText = "GetNameById";
            comm.Parameters.Add("@id", SqlDbType.Int).Value = 2;

            //设置输出参数: 增加存储过程输出参数如果是字符型必须制定长度.
            comm.Parameters.Add("@name", SqlDbType.VarChar, 50).Direction = ParameterDirection.Output;
            //设置返回值:存储过程的返回值必须是Int型
            comm.Parameters.Add("@result", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
            /*return值只能是int型,但如果一个nvarchar类型的变量,且该变量中是数字可以隐式地转换为数字时,
            那么他将可以作为return值.同理,其他类型变量也一样.
            在默认情况下一个存储过程的return value为0,表示这个存储过程被成功的执行,如果是非零值,则代表没有顺利执行.
            我们可以认为的返回对自己有用的数据,例如新增一个用户时,返回新增用户的UserID.
            用法是:RETURN @usr_id,然后通过.*/

            comm.Connection = conn;

            comm.CommandType = CommandType.StoredProcedure;

            comm.ExecuteReader();
            //得到输入参数
            string name = comm.Parameters["@name"].Value.ToString();

            //得到返回值
            string result = comm.Parameters["@result"].Value.ToString();

            Response.Write("输出参数:" + name);
            Response.Write("<br>");
            Response.Write("返回值:" + result);
        }
    }
}

 

  • 大小: 35.3 KB
分享到:
评论

相关推荐

    asp.net存储过程 增删改查对存储过程超作

    ASP.NET存储过程是数据库操作中的常见技术,它允许开发者通过编写预编译的SQL语句集,实现数据的增、删、改、查(CRUD)操作,提高应用程序的性能和安全性。在ASP.NET中,我们可以利用ADO.NET库与数据库进行交互,...

    ASP.NET MVC3 CRUD 源码

    在这个"ASP.NET MVC3 CRUD 源码"中,我们可以深入理解如何使用该框架进行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),这些是任何数据管理应用的核心功能。 1. **MVC架构**:MVC...

    ASP.NET简易通讯录

    【ASP.NET简易通讯录】项目是一个面向初学者的教程,旨在教授如何利用ASP.NET、C#编程语言以及SQL Server 2000数据库来构建一个基础的通讯录系统。这个项目可以帮助初学者理解Web应用程序的基本架构,特别是针对.NET...

    简单的聊天室C#(asp.net)

    在本项目中,"简单的聊天室C#(asp.net)"是一个使用C#语言和ASP.NET框架构建的网络应用程序,旨在实现一个基本的在线聊天功能。这个项目包含了多个小实验和一个综合实验,覆盖了从基础到进阶的ASP.NET开发技术。...

    asp.net 后台管理系统界面

    ASP.NET 是微软公司开发的一种用于构建 Web 应用程序的框架,它允许开发者使用.NET Framework 或.NET Core 进行服务器端编程。在这个“asp.net 后台管理系统界面”中,我们主要关注的是如何利用 ASP.NET 来设计和...

    基于asp.net的简单购物车系统

    【基于ASP.NET的简单购物车系统】是一个专为初学者设计的教学项目,旨在演示如何使用ASP.NET技术构建一个基础的在线购物平台。该系统的核心功能包括浏览商品、添加到购物车以及用户登录,通过这些基本操作,学习者...

    asp.net mvc4 easyui CRUD 分页 查询

    在本项目中,"asp.net mvc4 easyui CRUD 分页 查询"是结合了这两个技术,实现了数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete)功能,并且加入了分页和查询功能,使得数据管理更加高效。...

    asp.net简单购物网站

    【ASP.NET简单购物网站】 ASP.NET是微软公司推出的一种用于构建动态网站、Web应用程序和Web服务的开发框架。它基于.NET Framework,提供了丰富的特性和工具,使得开发者能够更高效地构建功能强大的网络应用,包括...

    c# asp.net+access 简易论坛BBS

    【描述】:这个项目是一个基于C#编程语言和ASP.NET框架构建的简单在线论坛,采用了Access数据库作为后台数据存储。它对于初学者来说非常友好,提供了一个易于理解和实践的平台,能够帮助初学者快速掌握Web应用开发的...

    使用asp.net编写的bbs论坛系统

    ASP.NET编写的BBS论坛系统是一种基于Web的应用程序,它允许用户进行在线讨论、交流观点和分享信息。这个系统的核心技术栈包括ASP.NET框架、HTML、CSS、JavaScript以及数据库技术,如SQL Server或MySQL。 ASP.NET是...

    asp.net迅捷网站

    【asp.net迅捷网站】是一种基于微软.NET框架的Web应用程序开发模式,主要应用于构建高效、安全、可扩展的网站系统。这个"三层架构的迅捷网(完整版)"项目,是一个教学实践案例,用于展示如何运用asp.net技术来设计...

    asp.net简易网上商城

    在这个网上商城项目中,SQL Server 2000会存储商品信息、用户信息、订单数据等,通过ADO.NET(.NET Framework中的数据访问组件)与ASP.NET应用程序进行交互,实现数据的CRUD(创建、读取、更新和删除)操作。...

    ASP.NET网上购物商城系统(ASP.NET源码).zip

    ASP.NET网上购物商城系统是一款基于ASP.NET技术构建的电子商务平台,它提供了全面的在线购物功能,包括商品浏览、购物车管理、订单处理、支付接口集成等。在这个项目中,开发者运用了ASP.NET的核心特性和MVC(Model-...

    ASP.net实现简单增删改查功能

    在这个“ASP.NET实现简单增删改查功能”的主题中,我们将深入探讨如何利用ASP.NET的核心组件,如Visual Studio(VS)集成开发环境和SQL Server数据库,来实现基本的数据操作。 首先,我们需要了解ASP.NET MVC或Web ...

    Asp.net考勤系统源码

    学习和分析这个ASP.NET考勤系统源码,可以帮助开发者深入理解ASP.NET Web应用程序的开发流程,熟悉MVC模式的应用,以及掌握如何在实际项目中组织代码结构、设计数据库模型、实现前后端交互等技能。对于想从事Web开发...

    最新ASP.NET+SQL Server项目

    8. **性能优化**:讨论如何优化ASP.NET应用程序和SQL Server查询,提高系统性能,例如使用缓存、批量插入和存储过程。 9. **部署和调试**:掌握将ASP.NET应用程序部署到IIS服务器的方法,以及使用Visual Studio进行...

    ASP.NET教学网站

    ASP.NET教学网站是一个专注于教授ASP.NET技术的在线学习平台,旨在帮助用户掌握ASP.NET的核心概念、开发技巧以及实际应用。ASP.NET是由微软公司推出的Web应用程序框架,它为开发者提供了构建高效、安全、可扩展的...

    ASP.NET【鲜花销售系统】

    【ASP.NET 鲜花销售系统】是一款基于ASP.NET技术开发的在线购物平台,专用于鲜花销售。这个项目是作为课程设计完成的,对于初学者来说,它提供了一个实际操作和学习ASP.NET技术的实例。下面我们将深入探讨该系统的...

Global site tag (gtag.js) - Google Analytics