.net三层架构调用存储过程,详细例子(不带model层的)

首先 进行数据库操作

1、建立一个数据库【User】,建立一张数据表【UserInfo】

包含四个字段 UserID int,   UserName varchar(50),    UserSex varchar(10),     UserDesc varchar(50) 其中UserID为自动增长列

2、创建存储过程

(1)、查找表中所有数据

       create procedure [dbo].[uInfo_select]
       as
       select * from userInfo

(2)、根据ID查找表中数据

      create procedure [dbo].[uInfo_select_uid]
      @uID int
      as
      select * from UserInfo where UserID = @uID

(3)、向表中插入数据

      create procedure [dbo].[uInfo_inSert] 
      @uName varchar(50),
      @uSex varchar(10),
      @uDesc varchar(100)
      as
      insert into userInfo(UserName,UserSex,UserDesc) values (@uName,@uSex,@uDesc)

(4)、更新表中数据

      create procedure [dbo].[uInfo_update] 
      @uID int,
      @uName varchar(50),
      @uSex varchar(10),
      @uDesc varchar(100)
      as
      update userInfo set UserName=@uName,UserSex=@uSex,UserDesc=@uDesc where UserID = @uID

(5)、删除表中某条记录

      create procedure [dbo].[uInfo_delete] 
      @uID int
      as
      delete userInfo where UserID = @uID

二、DAL 里面

类名叫:DAL_uInfo    要引用接口层IDAL (其他删除什么的方法我也都写了 ,本例只实现一个添加,其他的自己写吧。)

using System;
using System.Collections.Generic;
using System.Text;
using IDAL;

using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace DAL
{

public class DAL_uInfo : IDAL_uInfo
{
//获取web.config中的链接字符串
static string connStr = ConfigurationSettings.AppSettings["ConnDb"];

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <returns></returns>
public DataSet uinfo_select()
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
conn.Open();

SqlCommand comm = new SqlCommand("uInfo_select", conn);
comm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(comm);
da.Fill(ds);
return ds;
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <param name="ID">根据ID</param>
/// <returns></returns>
public DataSet uinfo_select(int ID)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
DataSet ds = new DataSet();
try
{
conn.Open();

SqlCommand comm = new SqlCommand("uInfo_select_uid", conn);
comm.CommandType = CommandType.StoredProcedure;

SqlParameter puID = new SqlParameter("@uID", SqlDbType.Int);

puID.Value = ID;

comm.Parameters.Add(puID);

SqlDataAdapter da = new SqlDataAdapter(comm);
da.Fill(ds);

return ds;
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}

/// <summary>
/// 向表中插入数据
/// </summary>
/// <param name="uName">用户名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
public void uinfo_insert(string uName, string uSex, string uDesc)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
conn.Open();

SqlCommand comm = new SqlCommand("uInfo_inSert", conn);
comm.CommandType = CommandType.StoredProcedure;

SqlParameter puName = new SqlParameter("@uName", SqlDbType.VarChar, 50);
SqlParameter puSex = new SqlParameter("@uSex", SqlDbType.VarChar, 10);
SqlParameter puDesc = new SqlParameter("@uDesc", SqlDbType.VarChar, 50);

puName.Value = uName;
puSex.Value = uSex;
puDesc.Value = uDesc;

comm.Parameters.Add(puName);
comm.Parameters.Add(puSex);
comm.Parameters.Add(puDesc);

comm.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}

/// <summary>
/// 更新表中数据
/// </summary>
/// <param name="uID">用户ID</param>
/// <param name="uName">名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
public void uinfo_update(int uID, string uName, string uSex, string uDesc)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
conn.Open();

SqlCommand comm = new SqlCommand("uInfo_updata", conn);
comm.CommandType = CommandType.StoredProcedure;

SqlParameter puName = new SqlParameter("@uName", SqlDbType.VarChar, 50);
SqlParameter puSex = new SqlParameter("@uSex", SqlDbType.VarChar, 10);
SqlParameter puDesc = new SqlParameter("@uDesc", SqlDbType.VarChar, 50);
SqlParameter puID = new SqlParameter("@uID", SqlDbType.Int);

puName.Value = uName;
puSex.Value = uSex;
puDesc.Value = uDesc;
puID.Value = uID;

comm.Parameters.Add(puName);
comm.Parameters.Add(puID);
comm.Parameters.Add(puDesc);
comm.Parameters.Add(puSex);

comm.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}

/// <summary>
/// 删除表中数据
/// </summary>
/// <param name="uID">用户ID</param>
public void uinfo_delete(int uID)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
conn.Open();

SqlCommand comm = new SqlCommand("uInfo_delete", conn);
comm.CommandType = CommandType.StoredProcedure;

SqlParameter puID = new SqlParameter("@uID", SqlDbType.Int);

puID.Value = uID;

comm.Parameters.Add(puID);

comm.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}
}
}

三、BLL里面

类名叫:BLL_uInfo

using System;
using System.Collections.Generic;
using System.Text;

using System.Data;

namespace BLL
{
public class BLL_uInfo
{

IDAL.IDAL_uInfo dal = new DAL.DAL_uInfo();

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <returns></returns>
public DataSet uinfo_select()
{
return dal.uinfo_select();
}

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <param name="ID">根据ID</param>
/// <returns></returns>
public DataSet uinfo_select_id(int ID)
{
return dal.uinfo_select(ID);
}

/// <summary>
/// 向表中插入数据
/// </summary>
/// <param name="uName">用户名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
public void uinfo_insert(string uName, string uSex, string uDesc)
{
dal.uinfo_insert(uName, uSex, uDesc);
}

/// <summary>
/// 更新表中数据
/// </summary>
/// <param name="uID">用户ID</param>
/// <param name="uName">名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
public void uinfo_update(int uID, string uName, string uSex, string uDesc)
{
dal.uinfo_update(uID, uName, uSex, uDesc);
}

/// <summary>
/// 删除表中数据
/// </summary>
/// <param name="uID">用户ID</param>
public void uinfo_delete(int uID)
{
dal.uinfo_delete(uID);
}
}
}

四、IDAL(接口层)

类名:IDAL_uInfo

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace IDAL
{
public interface IDAL_uInfo
{

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <returns></returns>
DataSet uinfo_select();

/// <summary>
/// 查询表中所有的数据
/// </summary>
/// <param name="ID">根据ID</param>
/// <returns></returns>
DataSet uinfo_select(int ID);

/// <summary>
/// 向表中插入数据
/// </summary>
/// <param name="uName">用户名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
void uinfo_insert(string uName, string uSex, string uDesc);

/// <summary>
/// 更新表中数据
/// </summary>
/// <param name="uID">用户ID</param>
/// <param name="uName">名称</param>
/// <param name="uSex">性别</param>
/// <param name="uDesc">信息</param>
void uinfo_updata(int uID, string uName, string uSex, string uDesc);

/// <summary>
/// 删除表中数据
/// </summary>
/// <param name="uID">用户ID</param>
void uinfo_delete(int uID);

}
}

五、UI

1、界面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CunchuDiaoyong._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:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
<br />
<asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="添 加" /></div>
</form>
</body>
</html>

2、后台代码

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

namespace CunchuDiaoyong
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnAdd_Click(object sender, EventArgs e)
{
string a = TextBox1.Text.Trim();
string b = TextBox2.Text.Trim();
string c = TextBox3.Text.Trim();

BLL.BLL_uInfo User = new BLL.BLL_uInfo();
User.uinfo_insert(a, b, c);

}
}
}

六、Web.config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<appSettings>
<add key="ConnDb" value="Server=192.168.18.246;Database=Sy_User;User ID=sa;Pwd=123"/>
</appSettings>
<connectionStrings/>

<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" />
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>

可以了,直接复制过去就可以用,想学习的话,还是必须得自己打几遍,设个断点,一步一步,一遍一遍的看,知道看会为止,学习没有好的技巧,Never Give Up!加油!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值