谈谈在开发过程中关于数据库操作的问题

阅读全文:http://www.cckan.net/forum.php?mod=viewthread&tid=106

 


先说分页的存储过程吧,我有一篇文章说了点
http://www.cnblogs.com/sufei/archive/2009/08/11/1543530.html 有兴趣的话可以过来看一下

1.关于查询的过程
 下面是一个,但是这个呢不用什么条件,主要是做用是用来绑定像 DropDownList 这们的控件,还是很方便的。下在是存储过程

Code
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
--
 Author:        <Author sufei>
--
 Create date: <Create 2090806>
--
 Description:    <查询所有的名称通用过程>
--
 =============================================
ALTER  PROCEDURE [dbo].[SP_select]
@tableName varchar(50),--直接写表名
@Colum  varchar(50)--要查询列用","分开
AS
BEGIN
declare @str varchar(200);
set @str=' select '+ @Colum +' from ' +@tableName;
exec (@str);
END


这里是用法先写一个Bll的方法

Code
  /// <summary>
        
/// 系统共用的查询过程没有条件
        
/// </summary>
        
/// <param name="tableName">表名</param>
        
/// <param name="Colum">要查询的列名</param>
        
/// <returns></returns>
        
public static DataTable SP_select(string tableName, string Colum)
        {
            SqlParameter
[] parms = new SqlParameter[]
           {
               new SqlParameter ("
@tableName",SqlDbType .VarChar ,50),
               new SqlParameter ("
@Colum",SqlDbType.VarChar ,200)
           };
            parms
[0].Value = tableName;
            parms
[1].Value = Colum;
            DataTable tables 
= SqlHelper.GetTable(SqlHelper.connectionString, CommandType.StoredProcedure, SqlString.SP_select, parms)[0];
            
return tables;
        }


下面是应用

 ddlGL.DataSource  =  AdminServices.SP_select( " AdminLevel " " ALID,ALNAame " );
            ddlGL.DataTextField 
=   " ALNAame " ;
            ddlGL.DataValueField 
=   " ALID " ;
            ddlGL.DataBind();

总结:有了这个过程以后大家再查询所有啊,绑定什么的就方便多了吧
还有删除的在这里我就不多说用法上的事了都是一样的

Code
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
--
 Author:        <Author,,Name>
--
 Create date: <Create Date,,>
--
 Description:    <公开删除>
--
 =============================================
ALTER PROCEDURE [dbo].[SP_delete]
@tableName varchar(50),--直接写表名
@where  varchar(50)--要查询列用,分开
AS
BEGIN
declare @str varchar(200);
set @str=' delete '+' from ' +@tableName+ ' where  '+@where ;
exec (@str);
END

查询的时候有条件的都可以这样写

Code
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
--
 Author:        <Author,sufei>
--
 Create date: <20090808>
--
 Description:    <根据条件查询的方法>
--
 =============================================
ALTER PROCEDURE [dbo].[S_selectOne]
@tableNmae varchar(50),--查询的表名
@Colum varchar(200),--要查询的列名用“,”分开
@Where varchar(200)--查询条件
AS
BEGIN
    
declare @strSql varchar(200);
 
set @strSql=' select '+@Colum  +'from '+@tableNmae+'  where '+@Where
exec(@strSql);
END


查询一定行数的过程

Code
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
--
 Author:        <Author,,sufei>
--
 Create date: <20090808>
--
 Description:    <查询一定条数的数据>
--
 =============================================
ALTER PROCEDURE [dbo].[S_selectNumber]
@tableNmae varchar(50),--查询的表名
@number int ,--查询条数
@Where varchar(200)--查询条件
AS
BEGIN

declare   @strSql varchar(500);
set @strSql='select top '+@number+' from '+@tableNmae 
+'where '+@Where
exec(@strSql);
END

看到 这里大家可能会想为什么不写成一个呢这些都可以用一个过程来完成的,是的这个真的是这样
但是在开发的过程中有时候分开有分开的好处,用起来方便吧,呵呵 

    我只是说一下自己的东西,不知道大家有没有更好的方法,还有关于修改和删除的通用的过程,谁有的共享一下啊,
我在这里感谢了, 我一直都是自己写的,还真没有找到更好的关于修改和添加的共用的过程,呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值