博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET使用存储过程实现对数据库的增删改查
阅读量:7229 次
发布时间:2019-06-29

本文共 5241 字,大约阅读时间需要 17 分钟。

一、整体思路

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

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

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

 

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

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

CREATE PROCEDURE ad    @sid char(10) ,    @sname char(10),    @sage intAS    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" %>
学号:
姓名:
年龄:

新增学生信息

然后,打开对应的 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)ASBEGIN    SELECT * FROM Student WHERE @sid = Student.sidEND

调用存储过程 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 intAS    update Student set Student.sname=@sname,Student.sage=@sage where Student.sid=@sidRETURN 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();        }

转载地址:http://midfm.baihongyu.com/

你可能感兴趣的文章
IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
查看>>
PHP项目记录
查看>>
.net面试题系列文章七(附答案)
查看>>
FastSocket
查看>>
ionic $ionicSlideBoxDelegate 滑动框事件
查看>>
点击文字,把input type="radio"也选中
查看>>
第一章 Java多线程技能
查看>>
Java 集合系列-第八篇-Map架构
查看>>
springmvc 3.2 @MatrixVariable bug 2
查看>>
React-Native PanResponder手势识别器
查看>>
IOS11 光标错位问题
查看>>
如何设计用户登录
查看>>
linux安装mysql5.7.19
查看>>
Zookeeper+ActiveMQ 集群实现
查看>>
加权有向图问题2----多源最短路径问题(Floyd算法)和关键路径算法
查看>>
logback logback.xml常用配置详解(三) <filter>
查看>>
KgMall B2B/B2B2c/C2C版店铺商号初始化
查看>>
Linux内核的ioctl函数学习
查看>>
Liunx Shell入门
查看>>
Thread的中断
查看>>