http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2968|回复: 0

[Asp.Net] 谈谈在开发过程中关于数据库操作的问题

[复制链接]
发表于 2012-7-20 16:47:36 | 显示全部楼层 |阅读模式
先说分页的存储过程吧,我有一篇文章说了点
http://www.sufeinet.com/forum.php?mod=viewthread&tid=99 有兴趣的话可以过来看一下
1.关于查询的过程
下面是一个,但是这个呢不用什么条件,主要是做用是用来绑定像 DropDownList 这们的控件,还是很方便的。下在是存储过程
[SQL] 纯文本查看 复制代码
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的方法
[C#] 纯文本查看 复制代码
/// <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;
        }

下面是应用
[C#] 纯文本查看 复制代码
ddlGL.DataSource = AdminServices.SP_select("AdminLevel", "ALID,ALNAame");
            ddlGL.DataTextField = "ALNAame";
            ddlGL.DataValueField = "ALID";
            ddlGL.DataBind();

总结:有了这个过程以后大家再查询所有啊,绑定什么的就方便多了吧
还有删除的在这里我就不多说用法上的事了都是一样的
[SQL] 纯文本查看 复制代码
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

查询的时候有条件的都可以这样写
[SQL] 纯文本查看 复制代码
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

查询一定行数的过程
[SQL] 纯文本查看 复制代码
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

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

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



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-5 06:04

© 2014-2021

快速回复 返回顶部 返回列表