C#中SQL传参的自动设置和赋值
引子:某年某日,公司Web程序被注入,导致数据库一塌糊涂。CIO大怒,要求以后所有数据库的交互行为都只能用SP,于是乎,即使是没有任何参数的一条查询语句也必须去到DB中加一条SP...
项目实例:新入手一个项目,业务流程比较复杂,数据库交互很多,一条条的SP写的煞是烦人,尤其是在DAL中设置Command的Parameters,繁琐而又费眼睛,写多了很容易出错,因为不仅仅要考虑参数的个数,而且要考虑传的值阿对,值的类型阿对,对于Update之类的动作尤其烦人,一个Table,几十个字段,一个个写进去实在不是个简单的事情。这一块的典型代码如下:
典型设置SQL参数
private readonly string _mConnectionString = ConstParameter.ConnectionString; //获得ConnectionString,ConstParameter是用来根据Web.Config来获取对应开发环境的String
var conn = new SqlConnection(_mConnectionString); //New一个Connection
cmd = conn.CreateCommand(); //New一个Command
cmd.CommandType = CommandType.StoredProcedure; //设置 Command 类型
cmd.CommandText = “Store Procedure Name”; //设置 SP Name//以下是本文要解决的主要代码段.....
cmd.Parameters.Add(new SqlParameter("@Para1" , SqlDbType"));
cmd.Parameters["@Para1"].Value = Para1Value;
cmd.Parameters.Add(new SqlParameter("@Para2" , SqlDbType"));
cmd.Parameters["@Para2"].Value = Para2Value;
cmd.Parameters.Add(new SqlParameter("@Para3" , SqlDbType"));
cmd.Parameters["@Para3"].Value = Para3Value;
.....
过程:很痛苦的很煎熬的一条条的SP写完了,调试通过,进入UAT的阶段,我也相对轻松了。逛逛博客园,偶然看到一篇博文 Attribute在.NET编程中的应用(三) ,发现和我遇到的情况基本一样,完整的看完了,感觉用Attribute确实比较另类,看看实现方法,主要也是运用了反射,于是乎,我想何不用反射写个简单的类呢?实现起来应该不复杂的吧? 两个小时后,我交出了第一个版本,废话少说,看代码先:
首先定义一个实体类
public class ModelTestEvents
{
public int TestEventID { get; set; }
public string EpisodeStatus { get; set; }
public string SerialNumber { get;补充:软件开发 , C# ,
上一个:C#对注册表的操作
下一个:C# 创建互斥程序_只允许运行一个程序实例
- 更多SQLServer疑问解答:
- 配置MSSQL复制指定快照文件夹提示:不是有效的路径或文件名
- 详细解读varchar和Nvarchar区别
- SQL SERVER 2005 同步复制技术
- 进程未能大容量复制到表 解决方法
- MSSql实例教程:MSSql数据库同步
- SQLServer2000同步复制技术实现(分发和订阅)
- sqlserver
- SQLSERVER
- 测试 sqlserver 最大用户数连接
- 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的
- sqlserver2008的安装问题。
- 为什么安装的SQL server 2008我的没有MSSQLSERVER协议啊?
- 怎样把exel表里的数据复制到sqlserver表里
- sqlserver数据库主键和外键问题
- sqlserver 中的左表连接查询和右表连接查询有啥不同?有什么用?
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,
部分文章来自网络,