存储过程及Comm.cs类的创建
2013-09-25 13:08:59
一、准备工作
首先创建一个数据库,如创建“试用期公务员管理”数据库;再创建一个Comm.cs类,添加代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Business
{
/// <summary>
/// 通用类
/// </summary>
public class Comm
{
/// <summary>
/// 通过DH获取Code/Chinese
/// </summary>
/// <param name="DH">DH</param>
/// <returns>返回DataTable</returns>
public static DataTable GetCodeByDH(string DH)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CNHRConnectionStrings"].ConnectionString);
try
{
conn.Open();
//sda.SelectCommand = GenerateInsertCommand(conn, dropYear.SelectedValue, "%" + UnitName + "%", unsub, sub, strlock, base.AccountID);//
SqlCommand cmd = new SqlCommand("根据DH获取代码表", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para1 = new SqlParameter("@DH", SqlDbType.NVarChar);
para1.Value = DH;
cmd.Parameters.Add(para1);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
finally
{
conn.Close();
}
}
}
二、数据获取
1、SQL中,在存储过程中新建“数据获取”,更改红色高亮部分。
USE [试用期公务员管理]
GO
/****** Object: StoredProcedure [dbo].[数据获取] Script Date: 2013/9/25 13:07:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER(先Create) PROCEDURE [dbo].[数据获取]
-- Add the parameters for the stored procedure here
@表名 nvarchar(50),
@条件 nvarchar(100),
@字段名 nvarchar(100),
@排序字段 nvarchar(100)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @sql nvarchar(max)
set @sql = 'select * from '+@表名+' where '+@字段名+' = '''+@条件 +''' order by '+@排序字段+''
exec sp_executesql @sql
END
2、在Comm.cs类中,添加“获取数据”方法:
/// <summary>
/// 获取数据
/// </summary>
/// <param name="_表名">表名</param>
/// <param name="_字段名">字段名</param>
/// <param name="_条件">条件</param>
/// <param name="_排序字段">排序字段</param>
/// <returns>返回DataTable</returns>
public static DataTable 获取数据(string _表名, string _字段名, string _条件, string _排序字段)
{
SqlConnection conn = new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CNHRConnectionStrings"].ConnectionString);
try
{
conn.Open();
//sda.SelectCommand = GenerateInsertCommand(conn,
dropYear.SelectedValue, "%" + UnitName + "%", unsub, sub, strlock,
base.AccountID);//
SqlCommand cmd = new SqlCommand("数据获取", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para1 = new SqlParameter("@表名", SqlDbType.NVarChar);
para1.Value = _表名;
cmd.Parameters.Add(para1);
SqlParameter para2 = new SqlParameter("@字段名", SqlDbType.NVarChar);
para2.Value = _字段名;
cmd.Parameters.Add(para2);
SqlParameter para3 = new SqlParameter("@条件", SqlDbType.NVarChar);
para3.Value = _条件;
cmd.Parameters.Add(para3);
SqlParameter para4 = new SqlParameter("@排序字段", SqlDbType.NVarChar);
para4.Value = _排序字段;
cmd.Parameters.Add(para4);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
finally
{
conn.Close();
}
}
三、数据更新
1、SQL中,在存储过程中新建“数据更新”,更改红色高亮部分。
USE [试用期公务员管理]
GO
/****** Object: StoredProcedure [dbo].[数据更新] Script Date: 2013/9/25 13:17:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[数据更新]
-- Add the parameters for the stored procedure here
@ID uniqueidentifier,
@表名 nvarchar(max),
@更新值 nvarchar(max)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @sql nvarchar(max)
set @sql = 'update '+@表名+' set '+@更新值+' where ID = '''+cast(@ID as nvarchar(max))+''' '
exec sp_executesql @sql
END
2、在Comm.cs类中,添加“更新数据”方法:
/// <summary>
/// 更新数据
/// </summary>
/// <param name="_表名">表名</param>
/// <param name="_字段名">字段名</param>
/// <param name="_条件">条件</param>
/// <param name="_排序字段">排序字段</param>
/// <returns>返回DataTable</returns>
public static int 更新数据(string ID, string 表名, string 更新值)
{
SqlConnection conn = new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CNHRConnectionStrings"].ConnectionString);
try
{
conn.Open();
//sda.SelectCommand = GenerateInsertCommand(conn,
dropYear.SelectedValue, "%" + UnitName + "%", unsub, sub, strlock,
base.AccountID);//
SqlCommand cmd = new SqlCommand("[数据更新]", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para1 = new SqlParameter("@ID", SqlDbType.UniqueIdentifier);
para1.Value = new Guid(ID);
cmd.Parameters.Add(para1);
SqlParameter para2 = new SqlParameter("@表名", SqlDbType.NVarChar);
para2.Value = 表名;
cmd.Parameters.Add(para2);
SqlParameter para3 = new SqlParameter("@更新值", SqlDbType.NVarChar);
para3.Value = 更新值;
cmd.Parameters.Add(para3);
return cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
四、数据新增
1、SQL中,在存储过程中新建“数据新增”,更改红色高亮部分。
USE [试用期公务员管理]
GO
/****** Object: StoredProcedure [dbo].[数据新增] Script Date: 2013/9/25 13:20:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[数据新增]
-- Add the parameters for the stored procedure here
@表名 nvarchar(max)
,@新增字段 nvarchar(max) --id,人员id,……
,@新增值 nvarchar(max) --'aa','bb'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @sql nvarchar(max)
set @sql = 'insert into '+@表名+' ('+@新增字段+') select '+@新增值+' '
exec sp_executesql @sql
END
2、在Comm.cs类中,添加“新增数据”方法:
/// <summary>
/// 新增数据
/// </summary>
/// <param name="_表名">表名</param>
/// <param name="_字段名">字段名</param>
/// <param name="_条件">条件</param>
/// <param name="_排序字段">排序字段</param>
/// <returns>返回DataTable</returns>
public static int 新增数据(string _表名, string 新增字段, string 新增值)
{
SqlConnection conn = new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CNHRConnectionStrings"].ConnectionString);
try
{
conn.Open();
//sda.SelectCommand = GenerateInsertCommand(conn,
dropYear.SelectedValue, "%" + UnitName + "%", unsub, sub, strlock,
base.AccountID);//
SqlCommand cmd = new SqlCommand("[数据新增]", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para1 = new SqlParameter("@表名", SqlDbType.NVarChar);
para1.Value = _表名;
cmd.Parameters.Add(para1);
SqlParameter para2 = new SqlParameter("@新增字段", SqlDbType.NVarChar);
para2.Value = 新增字段;
cmd.Parameters.Add(para2);
SqlParameter para3 = new SqlParameter("@新增值", SqlDbType.NVarChar);
para3.Value = 新增值;
cmd.Parameters.Add(para3);
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}
五、删除数据
1、SQL中,在存储过程中新建“数据删除”,更改红色高亮部分。
USE [试用期公务员管理]
GO
/****** Object: StoredProcedure [dbo].[数据删除] Script Date: 2013/9/25 13:23:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[数据删除]
-- Add the parameters for the stored procedure here
@ID uniqueidentifier,
@表名 nvarchar(max)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @sql nvarchar(max)
set @sql = 'delete '+@表名+' where ID = '''+cast(@ID as nvarchar(max))+''' '
exec sp_executesql @sql
END
2、在Comm.cs类中,添加“删除数据”方法:
/// <summary>
/// 删除数据
/// </summary>
/// <param name="_表名">表名</param>
/// <param name="_字段名">字段名</param>
/// <param name="_条件">条件</param>
/// <param name="_排序字段">排序字段</param>
/// <returns>返回DataTable</returns>
public static int 删除数据(string _表名, string ID)
{
SqlConnection conn = new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CNHRConnectionStrings"].ConnectionString);
try
{
conn.Open();
//sda.SelectCommand = GenerateInsertCommand(conn,
dropYear.SelectedValue, "%" + UnitName + "%", unsub, sub, strlock,
base.AccountID);//
SqlCommand cmd = new SqlCommand("数据删除", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para1 = new SqlParameter("@表名", SqlDbType.NVarChar);
para1.Value = _表名;
cmd.Parameters.Add(para1);
SqlParameter para2 = new SqlParameter("@ID", SqlDbType.UniqueIdentifier);
para2.Value = new Guid(ID);
cmd.Parameters.Add(para2);
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}
六、调用Comm.cs中的方法
xxx=Comm.删除数据();
yyy=Comm.更新数据();
七、DataGrid中,按钮编辑实现数据更新的另一种写法,不需要重新写一个专门的更新存储过程,直接调用公用的更新即可,如下:
在存储过程中对应的类中,加类似这样的代码:
/// <summary>
/// 更新试用期人员
/// </summary>
/// <param name="AccountID">ID</param>
/// <param name="_信息ID">信息</param>
/// <param name="_用户名">用户名</param>
/// <param name="_姓名">姓名</param>
/// <param name="_性别">性别</param>
/// <returns>返回受影响行数</returns>
public static int UpdateAccount(string AccountID, string _信息ID, string _用户名, string _姓名, string _性别)
{
StringBuilder sb_UpdateValue = new StringBuilder();
sb_UpdateValue.AppendFormat("信息='{0}',", _信息ID);
sb_UpdateValue.AppendFormat("用户名='{0}',", _用户名);
sb_UpdateValue.AppendFormat("姓名='{0}',", _姓名);
sb_UpdateValue.AppendFormat("性别='{0}',", _性别);
return Comm.更新数据(AccountID, "信息表", sb_UpdateValue.ToString());
}
在更新按钮的事件中代码如下:
protected void btnUpdate_Click(object sender, EventArgs e)
{
try
{
AccountRule.UpdateAccount(ID, Drp信息.SelectedValue, txt用户名.Text.Trim(), txtName.Text.Trim(), DrpSex.SelectedValue);
Response.Write("<script>alert('修改成功!');window.opener.location.href=window.opener.location.href;window.close();</script>");
}
catch (Exception ex)
{
OutInfo(ex.Message);
}
}
八、总结
以上是一种通用的增删改查的方法,可以单独针对自己需要的方法创建SQL语句于存储过程中,并创建相应的类,进而实现调用。
存储过程及Comm.cs类的创建的更多相关文章
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...
- 微软版的SqlHelper.cs类
一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...
- 微软SQLHelper.cs类 中文版
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Co ...
- 微软SQLHelper.cs类
using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...
- WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据
WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...
- WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)
WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...
- AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等
感叹: Core 16年6月1号 在中国宣布上线 到现在已经快经历两年时间了,目前版本已经到了2.0 就目前的前景来看,个人感觉 到2020年才可能有所起色,等到Core更成熟 个人看法:在.net这 ...
- 处女篇:自用C#后端SqlHelper.cs类
自用SqlHelper.cs类,此类来自软谋教育徐老师课程SqlHelper.cs! using System; using System.Collections; using System.Coll ...
- ASP.NET Core 基础知识(三) Program.cs类
ASP.NET Framework应用程序是严重依赖于IIS的,System.Web 中有很多方法都是直接调用的 IIS API,并且它还是驻留在IIS进程中的.而 ASP.NET Core 的运行则 ...
随机推荐
- 商户怎样选择商业wifi进行移动营销
互联网移动营销的大潮席卷而来,带给很多其它的商户营销理念上的升级和更新.商业wifi营销成为很多其它的商户选择.以往,人们在咖啡店不过聊聊天喝喝咖啡,如今,人们能够更悠闲的歇息娱乐享受带有wifi的咖 ...
- TIDB ---NEW SQL
https://github.com/pingcap/tidb http://www.pingcap.com/ Quick Start Run TiDB with Docker You can qui ...
- 重新组织 vs 重新生成索引
索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据.索引的重要性体现在能够使数据库引擎快速返回查询 结果.当对索引所在的基础数据表进行修改时(包括插入.删除和更新等 ...
- css笔记 css用法:
前端框架:AdminLTE https://almsaeedstudio.com/themes/AdminLTE/index2.html CSS学习教程: http://www.divcss5.co ...
- Redis 管道技术
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务.这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响 ...
- PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
文档注释,无非“//”和“/**/”两种 ,自己写代码,就那么点,适当写几句就好了:但是一个人总有融入团队的一天,团队的交流不是那几句注释和一张嘴能解决的,还需要通用的注释标准. PHPDoc是PHP ...
- ASP.NET通过byte正确安全的判断上传文件格式
本文介绍一种更安全的方式上传图片,他能有效的防止一些通过修改文件后缀或MIME来伪造的图片的上传,从而保证服务器的安全,希望对大家有所帮助. ASP.NET中在判断文件格式时,我们以前常用的方法就是通 ...
- cat命令的作用
1.显示文件内容,如more的功能. 使用方法: cat filename. 注:cat,无论文件多长,一次性全部显示:more,一次只显示一个屏幕高度的内容. 2.创建文件,如touch功能. 使 ...
- Oracle基础 exp/imp命令
一.导出方式: 使用exp/imp方式导出数据分为四种方式: 1.表方式导出:一个或多个指定的表,包括表的定义.表数据.表的所有者授权.表索引.表约束,以及创建在该表上的触发器.也可以只导出结构,不导 ...
- seajs第二节,seajs各模块依赖关系
index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...