.NET使用存储过程实现对数据库的增删改查

一、整体思路

先建立存储过程,再通过.net 调用存储过程,来实现对表的增删改查。

二、新建数据库及存储过程

打开SqlServer2008,新建数据库orm1,及表Student。

数据库和表建立好我们现在来建立存储过程。

存储过程 ad :新增学生信息

CREATE PROCEDURE ad
    @sid char(10) ,
    @sname char(10),
    @sage int
AS
    insert into  Student values(@sid,@sname,@sage)
RETURN 0

第一句 ad 代表的是存储过程的名字,AS之前的@sid、@sname、@sage 为输入或输出参数,默认是输入参数,如果需要设置为输出参数,则需要在参数后面添加 OUTPUT,也就是这样:

    @sname char(10) OUTPUT,

还有就是仔细看你会发现,最后一个参数是末尾是不需要加逗号的!

那么现在我们来执行下这个存储过程,是否正确。

在SqlServer2008中,选中该存储过程,右键 执行存储过程 ,会弹出输入窗口,输入对应的学生信息,点确定即可运行。

执行后,查看数据库,发现新增的信息已经插入数据库,代表新建存储过程成功!

三、.NET调用存储过程

先新建 WebForm1.aspx 文件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            学号:<asp:TextBox ID="sid" runat="server"></asp:TextBox>
        </div>
         <div>
            姓名:<asp:TextBox ID="sname" runat="server"></asp:TextBox>
        </div>
         <div>
            年龄:<asp:TextBox ID="sage" runat="server"></asp:TextBox>
        </div>
        <div>
            <asp:Button ID="Add" runat="server" Text="新增" OnClick="Add_Click" />
            <asp:Button ID="Select" runat="server" Text="查询" OnClick="Select_Click" />
            <asp:Button ID="Delete" runat="server" Text="删除" OnClick="Delete_Click" />
            <asp:Button ID="Update" runat="server" Text="修改" OnClick="Update_Click" />
            <asp:Button ID="ShowAll" runat="server" Text="显示所有" OnClick="ShowAll_Click"  />
        </div>
        <div>
            <asp:GridView ID="GridView1" runat="server"></asp:GridView>
        </div>
    </form>
</body>
</html>

新增学生信息

然后,打开对应的 cs 文件,编写新增方法 Add_Click

        protected void Add_Click(object sender, EventArgs e)
        {
            String constr = "Data Source=.;database=orm1;Integrated Security=True";
            SqlConnection con = new SqlConnection(constr);              //新建连接
            con.Open();                                                 //打开连接
            SqlCommand cmd = con.CreateCommand();                       //创建sqlCommand对象
            cmd.CommandText = "ad";                                     //调用存储过程 ad
            cmd.CommandType = CommandType.StoredProcedure;              //设置cmd的执行类型为存储过程
            cmd.Parameters.AddWithValue("@sid", sid.Text);              //设置参数并赋值
            cmd.Parameters.AddWithValue("@sname", sname.Text);          //设置参数并赋值
            cmd.Parameters.AddWithValue("@sage", int.Parse(sage.Text)); //设置参数并赋值
            if (cmd.ExecuteNonQuery() > 0)                              //执行存储过程
            {
                Response.Write("添加成功!");
            }
            else
            {
                Response.Write("添加失败");
            }
            con.Close();                                                //关闭连接
        }

运行这段代码就可以执行存储过程了。

查询学生信息

新增功能完成了,现在我们来看看如何实现查询学习信息的功能吧。

同样是先建存储过程 ss。

CREATE PROCEDURE ss
    @sid char(10)
AS
BEGIN

    SELECT * FROM Student WHERE @sid = Student.sid
END

调用存储过程 ss

        protected void Select_Click(object sender, EventArgs e)
        {
            String constr = "Data Source=.;Initial Catalog=orm1;Integrated Security=True";
            SqlConnection con = new SqlConnection(constr);
            con.Open();                                                 //打开连接
            SqlCommand cmd = new SqlCommand("ss", con);                 //使用存储过程
            cmd.CommandType = CommandType.StoredProcedure;              //设置Command对象的类型
            SqlParameter spr;                                           //表示执行一个存储过程
            spr = cmd.Parameters.Add("@sid", SqlDbType.NChar,10);       //增加参数id
            cmd.Parameters["@sid"].Value = sid.Text;                    //为参数初始化
            GridView1.DataSource = cmd.ExecuteReader();                 //执行存储过程并将数据绑定在GridView
            GridView1.DataBind();
            con.Close();                                                //关闭存储过程
        }

这次我们运行程序看下效果吧

我们输入我们前面新建的sid 200,点击查询

到这里,相信大家应该能了解如何使用.net 调用存储过程了,所以,修改、删除功能我就直接贴代码了。

修改学生信息

CREATE PROCEDURE ud
    @sid nchar(10) ,
    @sname nchar(10),
    @sage int
AS
    update Student set [email protected],[email protected] where Student.sid=@sid
RETURN 0
        protected void Update_Click(object sender, EventArgs e)
        {
            String constr = "data source=.;database=orm1;Integrated Security=true";
            SqlConnection con = new SqlConnection(constr);
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "ud";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@sid", sid.Text);
            cmd.Parameters.AddWithValue("@sname", sname.Text);
            cmd.Parameters.AddWithValue("@sage", int.Parse(sage.Text));
            if (cmd.ExecuteNonQuery() >0)
            {
                Response.Write("修改成功");
            }
            else
            {
                Response.Write("修改失败");
            }
            con.Close();

        }

删除学生信息

CREATE PROCEDURE de
    @sid char(10)
AS
    delete FROM Student WHERE @sid = Student.sid
        protected void Delete_Click(object sender, EventArgs e)
        {
            String constr = "Data Source=.;database=orm1;Integrated Security=True";
            SqlConnection sqlConnection = new SqlConnection(constr);
            sqlConnection.Open();
            SqlCommand cmd = sqlConnection.CreateCommand();
            cmd.CommandText = "de";
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter spr;
            spr = cmd.Parameters.Add("@sid", SqlDbType.NChar, 10);
            cmd.Parameters["@sid"].Value = sid.Text;
            if (cmd.ExecuteNonQuery() > 0)
            {
                Response.Write("删除成功!");
            }
            else
            {
                Response.Write("删除失败");
            }
            sqlConnection.Close();
        }

原文地址:https://www.cnblogs.com/dichuan/p/8183113.html

时间: 2024-08-29 18:35:46

.NET使用存储过程实现对数据库的增删改查的相关文章

mysql数据库的增删改查语句

连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [库名] 当前选择的库状态:SELECT DATABASE(); 创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 显示数据表字段:describe 表名; 当前库数据表结构:show tables; =============

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

TP框架中 数据库的增删改查

框架会用到数据库的内容,这一篇就是关于数据库的增删改查. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作, 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中(父类的conv

mysql笔记--数据库基本增删改查 修改表结构

数据库基本增删改查 1. 增-添加/插入数据,insert into 插入哪张表,那些列,什么值, 语句:insert into 表名(列1,列2,列3)values (值1,值2,值3): 可以不按原列的顺序插入,也可以插入部分列,但是值与列要一一对应,不能混乱!!! 一次插入多行数据 : Insert into 表名(列1,列2)values (值1,值2),(值1,值2): 2. 改-更新数据update 更新哪张表,哪些列,哪些值 语句:update 表名 set 列1=值1,列2=值2

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

【Visual Basic】vb6的ListView控件,对Access2003数据库的增删改查,判断是否有中文、多窗体操作

vb6对Access2003数据库的增删改查并不复杂,可以通过ado对象轻松完成,下面举个小例子,同时说明vb6中的ListView控件的使用.虽然在<[Visual Basic]列表控件ListView的增删改查.模态对话框.禁止窗口调整大小>曾经对VB.NET的ListView控件进行详细的说明,但是证明微软就是个坑爹货,vb6对于ListView实现的代码居然跟VB.NET有着彻底的不同,似乎换了一门语言似得的.改代码什么的最讨厌的. 首先,在vb6生成的工程文件夹中有着一个db1.md

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas