.NET使用存储过程实现对数据库的增删改查
程序员文章站
2022-06-23 09:26:37
一、整体思路 先建立存储过程,再通过.net 调用存储过程,来实现对表的增删改查。 二、新建数据库及存储过程 打开SqlServer2008,新建数据库orm1,及表Student。 数据库和表建立好我们现在来建立存储过程。 存储过程 ad :新增学生信息 第一句 ad 代表的是存储过程的名字,AS ......
一、整体思路
先建立存储过程,再通过.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 Student.sname=@sname,Student.sage=@sage 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(); }
上一篇: selenium-启动浏览器