一段关于实体类映射的代码

handler层:

#region 根据市场费用编号删除制定市场费用
        private void DelCommissionByCommissionID(HttpRequest Request, HttpContext context)
        {
            int pindex = 0;
            if (Request["pindex"] != "" && !string.IsNullOrEmpty(Request["pindex"]))
            {
                pindex = Convert.ToInt32(Request["pindex"]);
            }
            //验证权限
            UserControler control = new UserControler(context);
            //映射实体类Commission
            object obj = Utility.InitObject(Request, "Contract.Model.dll", "Contract.Model.Commission");
            Model.Commission commission = obj as Model.Commission;
            //ContractControler controler = ContractControler.GetContractByID(control.UserID, commission.ContractID);
            ContractControler controler = ContractControler.GetContractByID(control.UserID, commission.ContractID, pindex, 10, control.DepartmentID);
            int result = controler.DeleteCommission(commission);
            var json = new { Status = "failed", Msg = "删除失败" };
            if (result > 0)
            {
                json = new { Status = "success", Msg = "删除成功"};

            }
            context.Response.Write(js.Serialize(json));
        }
        #endregion

具体方法:

/// <summary>
        /// 用页面request中的参数实例化对象,要求页面中的参数名必须和对象中的属性名一致
        /// </summary>
        /// <param name="Request"></param>
        /// <param name="assemblyName">要求是dll文件名</param>
        /// <param name="typeName">对象名,要求对象必须有公用的无参数的实例化方法</param>
        /// <returns></returns>
        public static Object InitObject(HttpRequest Request, string assemblyName, string typeName)
        {
            Assembly assembly = Assembly.LoadFrom(Request.PhysicalApplicationPath
                + "\\bin\\" + assemblyName);

            Type type = assembly.GetType(typeName);
            //Type type = Type.GetType(typeName);
            Object obj = System.Activator.CreateInstance(type);
            foreach (var item in type.GetProperties())
            {
                string temp = Request[item.Name];
                if (item.PropertyType == typeof(string))
                    item.SetValue(obj, temp, null);
                if ((item.PropertyType == typeof(int) || item.PropertyType == typeof(int?)) && temp != null && temp != "")
                {
                    try
                    {
                        int intTmp = 0;
                        int.TryParse(temp, out intTmp);
                        item.SetValue(obj, intTmp, null);
                    }
                    catch { }
                }
                if (item.PropertyType == typeof(DateTime?) || item.PropertyType == typeof(DateTime))
                {
                    try
                    {
                        DateTime tmpd = DateTime.Now;
                        DateTime.TryParse(temp, out tmpd);
                        if (tmpd == DateTime.MinValue) tmpd = DateTime.Now;
                        item.SetValue(obj, tmpd, null);
                    }
                    catch { }
                }

                if (item.PropertyType == typeof(Decimal) && temp != null && temp != "")
                {
                    try
                    {
                        Decimal d = 0;
                        Decimal.TryParse(temp, out d);

                        item.SetValue(obj, d, null);
                    }
                    catch { }
                }
                if (item.PropertyType == typeof(Boolean) && temp != null && temp != "")
                {
                    try
                    {
                        bool d = false;

                        Boolean.TryParse(temp, out d);

                        item.SetValue(obj, d, null);
                    }
                    catch { }
                }
            }

            return obj;
        }
时间: 2024-10-24 16:30:20

一段关于实体类映射的代码的相关文章

Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作 前言 上文讲述了数据库配置及其它配置文件的使用,搭建好数据库的链接方式了,接下来就是数据库中的表与实体类的关联了(映射). 在V1.x中,新增了视图.存储过程的映射.在以往的解决方案中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作

.htaccess 一段神奇的跳转代码

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|youtube|wikipedia|excite|altavista|msn|aol|goto|infoseek|lycos|search|bing|dogpile|facebook|twitter|live|myspace|linkedin|flickr)\.(.*) RewriteRule ^(.*)$ htt

段寄存器(8086CPU)和代码段

1.段寄存器 8086CPU有4个段寄存器:CS.DS.SS.ES.当8086CPU访问内存时,由这4个段寄存器提供内存单元的段地址. CS和IP是8086中最关键的寄存器,他们指示了CPU当前要读取指令的地址.CS是代码段寄存器,IP为指令指针寄存器.在8086PC机中,任意时刻,设CS中的内容是M,IP中的内容是N,8086CPU将从内存地址:M*16+N处读取指令并执行.也可以这样表述,8086机中,任意时候,CPU将CS:IP指向的内容当做指令执行,.CPU将CS.IP中的内容当做指令的

每每一看到自己的这段没通过的辛酸代码

Longest Valid Parentheses My Submissions Question Solution Total Accepted: 47520 Total Submissions: 222865 Difficulty: Hard Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses subs

一段发工资的shell代码

人事发工资条之前是一个个截图发到我们的邮箱里,看人事妹纸是一个善良而又美丽的姑凉,于是乎写了一段shell代码实现批量发短信至各个手机号.不多说了,上代码,其实很简单,我都不好意思上传,还是记录下吧,以后可以吹吹牛逼.其中的原理就是便历salary.csv中的每一条数据,这段代码最厉害的就是那个jar包了,没那个jar包,我这代码也不管用,明天上传一份发邮件实现相同功能的shell代码. #!/bin/bash SendMsg="/data/x5online/sendPhoneMsg.jar&q

PHP.7-HTML+CSS(一)-HTML语法、常用字符实体、颜色代码

HTML+CSS HTML是WEB页面的描述性语言,浏览器解释的语言 CSS则是为HTML制定样式的机制,为浏览器解释的语言.它不能独立使用,没有HTML就没有CSS,定义网页的外观和布局(字体.背景.文本.位置.边缘.列表及其它) JavaScript是具有交互性Web设计最佳选择 都可以独立编写 CSS和JavaScript还有PHP都可以嵌入在HTML中应用 HTML语法 <标记名> </标记名>  成对的标记,也称为容器.标记中可以嵌套其它的标记 0.HTML标签属性 属性

7段数码管显示驱动代码

数码管显示进行简单的介绍,数码管显示原理在数电中已经给出了比较详细的介绍,我就不赘述了,因为我们用的是至芯的开发板,其上的数码管显示模块采用的是共阳极的数码管,为低电平有效,0-F的显示码依次为:    数码管的输入有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显示什么,位选本来应该是有6个的但是为了节约资源,采用了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源. 因为人眼有一个视觉载留,所以60HZ来扫描的时候,数码管会让人眼觉得是同时点亮,

【数据库_Postgresql】实体类映射问题之不执行sql语句

后台controller到dao都没问题,前台页面接收的是一个实体类对象,在service层接收的也是对象,传入mapper里面的也是对象,没有用map,但是打印台却不执行sql语句,也没有明显错误提示. 最后发现原因所在,贴出原来的sql语句和更改后成功执行的sql语句,可以看出别名和if test判断去除之后便可以执行.具体是因为别名还是if test有兴趣的朋友可以测试一下,我就不试了. 原来的代码 <select id="queryByPrimaryKey" parame

[javascript]一段焦点图的js代码

1 <html> 2 <head> 3 <meta name="name" content="content"charset="utf-8"/> 4 <style type="text/css" media="screen"> 5 #main{ width: 800px;height: 300px;margin: 0 auto;position: relati