JS 获取时间和时间比较(时/分/秒)

Continue Read..
<div id='jnkc'>00:00:00</div> 
<script> 
d=new Date(); 
function shijian()
xs=d.getHours(); 
fz=d.getMinutes(); 
m=d.getSeconds(); 
getElementById('jnkc').innerHTML=xs+":"+fz+":"+m; 
setInterval("shijian();", 1000); 
</script>


<script language="JavaScript">

/*  
            检测时间是否为空 */  
        function checkNull(id){  
            //开始时间  
            if(id == "starttime"){  
                startTime = $("#starttime").val();  
                  
                if(isNull(startTime)){  
                    alert("起始时间不能为空");  
                    return false;  
                }  
                return true;  
            }  
              
            //结束时间  
            if(id == "endtime"){  
                endTime = $("#endtime").val();  
                  
                if(isNull(endTime)){  
                    alert("结束时间不能为空");  
                    return false;  
                }  
                return true;  
            }  
        }  
          
        /* 
          1.  检测开始时间是否小于结束时间(字符串也可以之间比较难控制相差的时间长度,使用毫秒计算) */  
        function checkDate(){  
            var startTimeMills = getDateMillsByDateString("starttime");  
            var endTIimeMills =  getDateMillsByDateString("endtime");  
            
            var interval = 24*60*60*1000;  
              
            if(startTimeMills < endTIimeMills && 0 < endTIimeMills - startTimeMills < interval){  
                return true;  
            }  
            alert("起始时间需要小于结束时间");  
            return false;  
        }  
          
        /* 
            查询 操作*/  
        function query(){  
            if(!checkNull('starttime')){  
                return ;  
            }  
            if(!checkNull('endtime')){  
                return;  
            }  
            if(!checkDate()){  
                return;  
            }  
              
            $("#form1").submit();  
        }  
          
        //将字符串时间(yyyy-MM-dd HH:mm:ss)转换成毫秒  
        function getDateMillsByDateString(timeId){  
            var timeStr = $("#" + timeId).val();  
              
            var dateAndTimeArray = timeStr.split(" ");  
            var dateArray = dateAndTimeArray[0].split("-");  
            var timeArray = dateAndTimeArray[1].split(":");  
              
            var date = new Date(dateArray[0],dateArray[1],dateArray[2],timeArray[0],timeArray[1],timeArray[2]);  
              
            var dateMills = date.getTime();  
              
            return dateMills;  
        }  
          
          
        //判断字符串时间是否为空  
        function isNull(timeString){  
            if(timeString == null || timeString == ""){  
                return true;  
            }  
            return false;  
        }

 2.function checkEndTime(){  
    var startTime=$("#startTime").val();  
    var start=new Date(startTime.replace("-", "/").replace("-", "/"));  
    var endTime=$("#endTime").val();  
    var end=new Date(endTime.replace("-", "/").replace("-", "/"));  
    if(end<start){  
        return false;  
    }  
    return true;  
}    
</script>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

enumHelper的多种方法

Continue Read..
/// <summary>
    /// 枚举处理方法集
    /// </summary>
    /// <returns></returns>
    /// <author></author>
    public class EnumHelper
    {
        /// <summary>
        /// 根据enum名称取得enum
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static object GetEnum(Type enumType, string name)
        {
            return Enum.Parse(enumType, name);
        }

        /// <summary>
        /// 根据enum值取得enum
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="enmname"></param>
        /// <returns></returns>
        public static object GetEnum(Type enumType, int value)
        {
            return Enum.Parse(enumType, value.ToString());
        }

        /// <summary>
        /// 根据enum名称取得enum值
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static int GetEnumValue(Type enumType, string name)
        {
            return (int) Enum.Parse(enumType, name);
        }

        /// <summary>
        /// 根据enum值取得enum名称
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="enmname"></param>
        /// <returns></returns>
        public static string GetEnumName(Type enumType, int value)
        {
            return Enum.Parse(enumType, value.ToString()).ToString();
        }

        /// <summary>
        /// 获得Enum注释
        /// </summary>
        /// <param name="value">Enum值</param>
        /// <returns>Enum注释</returns>
        public static string GetEnumDescription(Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
            var attributes = (DescriptionAttribute[]) fi.GetCustomAttributes(typeof (DescriptionAttribute), false);
            return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
        }

        /// <summary>
        /// 获得Enum注释
        /// </summary>
        /// <param name="enumType">Enum类型</param>
        /// <param name="name"></param>
        /// <returns>Enum注释</returns>
        public static string GetEnumDescription(Type enumType, string name)
        {
            FieldInfo fi = Enum.Parse(enumType, name).GetType().GetField(Enum.Parse(enumType, name).ToString());
            var attributes = (DescriptionAttribute[]) fi.GetCustomAttributes(typeof (DescriptionAttribute), false);
            return (attributes.Length > 0) ? attributes[0].Description : Enum.Parse(enumType, name).ToString();
        }

        /// <summary>
        /// 获得Enum资源定义
        /// </summary>
        /// <param name="enumType">Enum类型</param>
        /// <param name="name"></param>
        /// <returns>Enum注释</returns>
        public static string GetEnumResText(Type enumType, string name)
        {
            return EnumOperation.GetEnumResText(enumType, name);
        }

        /// <summary>
        /// 根据Enum资源定义,获取枚举值
        /// </summary>
        /// <param name="enumType">Enum类型</param>
        /// <param name="name"></param>
        /// <returns>Enum注释</returns>
        public static string GetEnumByResText(Type enumType, string resText)
        {
            return EnumOperation.GetEnumByResText(enumType, resText);
        }
    }

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

sqlHelper的多种方法

Continue Read..
/// <summary>
    /// SqlServer数据访问帮助类
    /// </summary>
    public class SqlHelper
    {
        private SqlHelper() { }
        public static string conn = ConfigurationManager.ConnectionStrings["conn"].ToString();
        public static string connJob = ConfigurationManager.ConnectionStrings["connJob"].ToString();
        public static int ExecSql(string sql)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {
                using (SqlCommand cmd = new SqlCommand(sql, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        connection.Close();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);

                    }
                }
            }
        }
        public static DataSet ExecSqlDs(string sql)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(sql, connection);
                    
                    command.Fill(ds, "ds");
                    connection.Close();
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);

                }
                return ds;
            }
        }


        private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters, CommandType type)
        {
            SqlCommand command = new SqlCommand(storedProcName, connection);
            command.CommandType = type;
            if (parameters != null)
            {
                foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            }
            return command;
        }


        public static DataSet ExecSqlDs(string sql, IDataParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(sql, connection);

                    if (parameters != null)
                    {
                        foreach (SqlParameter parameter in parameters)
                        {
                            command.SelectCommand.Parameters.Add(parameter);
                        }
                    }
                    command.Fill(ds, "ds");
                    connection.Close();
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);

                }
                return ds;
            }
        }

        public static DataSet ExecSqlDs(CommandType cmdType, string sql, IDataParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(sql, connection);
                    command.SelectCommand.CommandType = cmdType;
                    if (parameters != null)
                    {
                        foreach (SqlParameter parameter in parameters)
                        {
                            command.SelectCommand.Parameters.Add(parameter);
                        }
                    }
                    command.Fill(ds, "ds");
                    connection.Close();
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);

                }
                return ds;
            }
        }

        public static int ExecSql(string sql, IDataParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {
                using (SqlCommand sqlcommand = BuildQueryCommand(connection, sql, parameters, CommandType.Text))
                {
                    try
                    {
                        connection.Open();
                        int rows = sqlcommand.ExecuteNonQuery();
                        connection.Close();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);

                    }
                }
            }
        }

        public static object ExecuteScalar(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();

            using (SqlConnection connection = new SqlConnection(conn))
            {
                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }
        }

        public static object ExecuteSql(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();

            using (SqlConnection connection = new SqlConnection(conn))
            {
                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }
        }

        /// <summary>
        /// Prepare a command for execution
        /// </summary>p[;[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
        /// <param name="cmd">SqlCommand object</param>
        /// <param name="conn">SqlConnection object</param>
        /// <param name="trans">SqlTransaction object</param>
        /// <param name="cmdType">Cmd type e.g. stored procedure or text</param>
        /// <param name="cmdText">Command text, e.g. Select * from Products</param>
        /// <param name="cmdParms">SqlParameters to use in the command</param>
        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();

            cmd.Connection = conn;
            cmd.CommandText = cmdText;

            if (trans != null)
                cmd.Transaction = trans;

            cmd.CommandType = cmdType;

            if (cmdParms != null)
            {
                foreach (SqlParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }

        public static DataSet ExecProc(string storedProcName, IDataParameter[] parameters)
        {
            SqlConnection connection = new SqlConnection(conn);

            try
            {
                SqlCommand sqlcommand = BuildQueryCommand(connection, storedProcName, parameters, CommandType.StoredProcedure);
                SqlDataAdapter SqlDA = new SqlDataAdapter(sqlcommand);
                DataSet DS = new DataSet();
                SqlDA.Fill(DS);
                connection.Close();

                return DS;
            }
            catch (System.Data.SqlClient.SqlException E)
            {
                connection.Close();
                throw new Exception(E.Message);

            }
        }
        public static int ExecProcMaxCode(string storedProcName, string type)
        {
            SqlConnection connection = new SqlConnection(conn);

            try
            {
                connection.Open();
                System.Data.SqlClient.SqlParameter p1 = new System.Data.SqlClient.SqlParameter("@type", SqlDbType.VarChar, 10);
                p1.Value = type;
                System.Data.SqlClient.SqlParameter p2 = new System.Data.SqlClient.SqlParameter("@r_v", SqlDbType.Int);
                p2.Direction = ParameterDirection.Output;
                IDataParameter[] ps = new IDataParameter[] { p1, p2 };
                SqlCommand sqlcommand = BuildQueryCommand(connection, storedProcName, ps, CommandType.StoredProcedure);
                sqlcommand.ExecuteNonQuery();
                int maxcode = (int)sqlcommand.Parameters["@r_v"].Value;
                connection.Close();
                return maxcode;

            }
            catch (System.Data.SqlClient.SqlException E)
            {
                connection.Close();
                throw new Exception(E.Message);

            }
        }


    }

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

css 样式兼容代码

Continue Read..

.typecbl input{margin-right:5px;*margin-right:3px;_margin-right:3px;}

 【注::不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。】

或则用!important  区分。

 

浏览器/符号 IE6 IE7 FF(FireFox) 

*(星号)      √ √  × 

!important   × √  √ 

_(下划线)    √ ×  × 

 

*width:96px; /*IE6/7的属性*/

_width:96px;  /*ie6*/

width:96px\0; /*ie8*/

width:96px\9;  /*IE6/7/8的属性*/

 

margin-top:7px\9; /*ie8*/

*+margin-top:0px; /*ie7*/

 

 

注:IE都能识别*;标准浏览器(如FF)不能识别*; 

 

IE6能识别*,但不能识别 !important, 

IE7能识别*,也能识别!important; 

FF不能识别*,但能识别!important; 

所以标准的写法FF,IE7,IE6: 

color:#fff; *color:#000 !important; *color:#ff6600; 

firefox:白色,IE7:黑色,IE6:橙色 

 

另外再补充一个,下划线”_”, 

IE6支持下划线,IE7和firefox均不支持下划线。 

于是大家还可以这样来区分IE6,IE7,firefox 

: background:orange;*background:green;_background:blue; 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

golang hmac的sha1加密例子

Continue Read..

想要用go写btcchina平台的接口,api加密形式在php中是hash_hmac('sha1',$string,$key);

go中的一样有hmac包,下面是代码

package main

import (
	"crypto/hmac"
	"crypto/sha1"
	"fmt"
	"io"
)

func main() {
	//sha1
	h := sha1.New()
	io.WriteString(h, "aaaaaa")
	fmt.Printf("%x\n", h.Sum(nil))

	//hmac ,use sha1
	key := []byte("123456")
	mac := hmac.New(sha1.New, key)
	mac.Write([]byte("aaaaaa"))
	fmt.Printf("%x\n", mac.Sum(nil))
}


声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

C# DataTable导出Excel文件

Continue Read..
点击查看原图
HTML:
<a title="下载"  href='#' onclick="LoadFile('<%#Eval("ApplyRecordNo") %>','<%#Eval("ApplyRecordKey") %>',this)">
       <img src="../images/edit.png" style="vertical-align: middle"></img>&nbsp;下载&nbsp;
</a>
<iframe style="display:none;" id="ReportDownload" ></iframe>
<asp:Button ID="btnDown" runat="server" Text=""  Width="0" Height="0" BackColor="Transparent" onclick="btnDown_Click" />
<input id="applykey" type="hidden" name = "applykey"/>
<input id="applyid" type="hidden" name = "applyid"/>
<input id="applyids" name="applyids" type="hidden" />

Jquery:
function LoadFile(applyno,applykey) {
            var url = "";
            document.getElementById("applyid").value = applyno;
            document.getElementById("applykey").value = applykey;
            document.getElementById("MainContent_btnDown").click();
        }

cs:
protected void btnDown_Click(object sender, EventArgs e)
    {
        string applyid = Request.Params["applyid"].ToString();//申领单号
        string applykey = Request.Params["applykey"].ToString();//申领单号

        ItemServices isMgr = new ItemServices();
        DataTable dt = new DataTable();
        dt = stockMgr.GetApplyRecordDetailById(Convert.ToInt64(applykey));

            dt.Columns["ItemName"].ColumnName = "药品名称";
            dt.Columns["ItemCode"].ColumnName = "药品编码";
            dt.Columns["ItemSpec"].ColumnName = "药品型号";
            dt.Columns["ItemUnit"].ColumnName = "药品单位";
            dt.Columns["ApplyAmount"].ColumnName = "申领数量";

        string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xlsx";

        NPOIExcelHelper.RenderDataTableToExcel(dt, this.MapPath("~/Upload/" + newFileName));

        // 导出下载
        Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "",
            "$(function(){$('#ReportDownload').attr('src','" + "../Statistics/reportdownload.aspx?ef=" + Server.UrlEncode(this.MapPath("~/Upload/" + newFileName)) + "');});", true);
        
    }

其他代码详见附件;

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

C# Eval的另一种写法

Continue Read..
<td><%#string.Join("<br />", ((AnesMS.DataModel.Entity.ApplyRecordDetailInfo)(Container.DataItem)).ApplyRecordDetailItemInfoList.Select(A => "批号:" + A.BatchNo + ",有效期:" + A.ExpiryDate.ToShortDateString() + ",数量:" + A.Amount).ToArray())%></td>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Jquery】限制复选框选中 添加带修改模式

Continue Read..
 $(function(){

var tnum = {$vo['ambit_c']};
var anum = {$vo['tags_c']};
var a = $("input[name='ambit[]']:checked").size();
var b = $("input[name='tags[]']:checked").size();

if(a >= 3){
$("input[name='ambit[]']:checkbox").not("input[name='ambit[]']:checked").attr("disabled","disabled");
}
if(b >= 3){
$("input[name='tags[]']:checkbox").not("input[name='tags[]']:checked").attr("disabled","disabled");
}
$(":checkbox[name='ambit[]']").each(function(){

$(this).click(function(){

if($(this)[0].checked) {
++tnum;
if(tnum == 3) {
//alert("最多选择 三项 的上限已满, 其他选项将会变为不可选.");
$(":checkbox[name='ambit[]']").each(function(){
if(!$(this)[0].checked) {
$(this).attr("disabled", "disabled");
}
});
}
} else {
--tnum;
if(tnum <= 2) {
$(":checkbox[name='ambit[]']").each(function(){
if(!$(this)[0].checked) {
$(this).removeAttr("disabled");
}
});
}
}
});
});
$(":checkbox[name='tags[]']").each(function(){
$(this).click(function(){
if($(this)[0].checked) {
++anum;
if(anum == 3) {
//alert("最多选择 三项 的上限已满, 其他选项将会变为不可选.");
$(":checkbox[name='tags[]']").each(function(){
if(!$(this)[0].checked) {
$(this).attr("disabled", "disabled");
}
});
}
} else {
--anum;
if(anum <= 2) {
$(":checkbox[name='tags[]']").each(function(){
if(!$(this)[0].checked) {
$(this).removeAttr("disabled");
}
});
}
}
});
});
})

{$vo['ambit_c']}是PHP调用 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Jquery】复选框是否选中并获取值

Continue Read..
属性过滤(Attribute Filters) 的内容就是html元素中的属性,例如 name, id, class, 但是不是指的其值,是指属性本身.我在每篇文章里面都讲一下自己对这个选择器系列的理解,原因其一是方便理解其含义并记忆,其二就是”混个脸熟”,即便记不住,在以后用到的时候也可以很快的查找api并应用上. 
其包括以下几个选择器: [attribute] [attribute=value] [attribute!=value] [attribute^=value] [attribute$=value][attribute*=value] [attributeFilter1][attributeFilter2][attributeFilterN] 
[attribute] 
用法: $(“div[id]“) ; 
说明: 匹配包含给定属性的元素.注意,在jQuery 1.3中,前导的@符号已经被废除!如果想要兼容最新版本,只需要简单去掉@符号即可.是的,新版必须去掉@符号,这个改变相信使用老版本的童鞋会习惯的.例子中是选取了所有带”id”属性的div标签. 
[attribute=value] 
用法: $(“input[name='newsletter']“).attr(“checked”, true); 
说明: 匹配给定的属性是某个特定值的元素.例子中选取了所有 name 属性是 newsletter 的 input 元素. 
[attribute!=value] 
用法: $(“input[name!='newsletter']“).attr(“checked”, true); 
说明: 匹配所有不含有指定的属性,或者属性不等于特定值的元素.此选择器等价于:not([attr=value]),要匹配含有特定属性但不等于特定值的元素,请使用[attr]:not([attr=value]).嗯,之前看到的 :not 派上了用场. 
[attribute^=value] 
用法: $(“input[name^='news']“) ; 
说明: 匹配给定的属性是以某些值开始的元素.嗯,我们又见到了这几个类似于正则匹配的符号.现在想忘都忘不掉了吧?! 
[attribute$=value] 
用法: $(“input[name$='letter']“) ; 
说明: 匹配给定的属性是以某些值结尾的元素. 
[attribute*=value] 
用法: $(“input[name*='man']“) ; 
说明: 匹配给定的属性是以包含某些值的元素. 
[attributeFilter1][attributeFilter2][attributeFilterN] 
用法: $(“input[id][name$='man']“) ; 
说明: 复合属性选择器,需要同时满足多个条件时使用.又是一个组合,这种情况我们实际使用的时候很常用.这个例子中选择的是所有含有 id 属性,并且它的 name 属性是以 man 结尾的元素. 
通过属性过滤(Attribute Filters)的学习,可以看出来,jQuery的选择器用法是微妙的,得细致而为之.让我想起来了那个因为一个小数点导致什么宇宙飞船爆炸还是什么的事了.有点耸人听闻,但是等我们使用的非常非常多了以后,自然就很容易分开区别了.

Linq info/List<info>的两种方法

Continue Read..
1.info/List<info>的获取
public Chest GetChestInfoByChestKey(long chestKey)
        {
            using (var entity = MyDynEntities)
            {
                var resultQuery = entity.Chest.FirstOrDefault(e => e.ChestKey == chestKey);
                return resultQuery;
            }
        }

        public IList<Drawer> GetDrawerByChestKey(long chestKey)
        {
            using (var entity = MyDynEntities)
            {
                var resultQuery = entity.Drawer.Where(e => e.ChestKey == chestKey).ToList();
                return resultQuery;
            }
        }

2.info/List<info>的新增
public Chest InsertChest(Chest chest)
        {
            using (var entity = MyDynEntities)
            {
                DbTransaction trans = null;
                try
                {
                    entity.Connection.Open();
                    trans = entity.Connection.BeginTransaction();
                    entity.Chest.AddObject(chest);
                    entity.SaveChanges();

                    //提交事务
                    trans.Commit();
                    return chest;
                }
                catch (Exception ex)
                {
                    if (trans != null)
                        trans.Rollback();

                    LogHelper.Instance.CreateLog(ex);
                    return null;
                }
            }
        }

        public IList<Drawer> InsertDrawerList(IList<Drawer> drawers)
        {
            using (var entity = MyDynEntities)
            {
                DbTransaction trans = null;
                try
                {
                    entity.Connection.Open();
                    trans = entity.Connection.BeginTransaction();
                    drawers.ToList().ForEach(e => entity.Drawer.AddObject(e));
                    entity.SaveChanges();
                    //提交事务
                    trans.Commit();
                    return drawers;
                }
                catch (Exception ex)
                {
                    if (trans != null)
                        trans.Rollback();

                    LogHelper.Instance.CreateLog(ex);
                    return null;
                }
            }
        }

以下是调用:
ChestKey = Request.QueryString["ChestKey"];
        IChestService _chestService = new ChestService();

        var oldChest = _chestService.GetChestInfoByChestKey(Convert.ToInt64(ChestKey));
        var oldDrawerList = _chestService.GetDrawerByChestKey(Convert.ToInt64(ChestKey));

//柜子
        oldChest.NameText = tbChestName.Text;
        oldChest.ChestUID = tbChestUID.Text;
        oldChest.SectionKey = int.Parse(hsectionKey.Value);
        oldChest.SectionName = tbSection.Value;

        var newChest = new Chest
                           {
                               ChestType = oldChest.ChestType,
                               ChestUID = oldChest.ChestUID,
                               NameText = oldChest.NameText,
                               ChestID = oldChest.ChestID,
                               SectionKey = oldChest.SectionKey,
                               SectionName = oldChest.SectionName,
                               CountOfDraw = oldChest.CountOfDraw,
                               IPAddress = oldChest.IPAddress,
                               DescText = oldChest.DescText,
                               State = oldChest.State,
                               ParentChestKey = oldChest.ParentChestKey,
                               CreatedActorKey = user.UserAccountKey,
                               CreatedLocalDtm = DateTime.Now,
                               LastModifiedActorKey =user.UserAccountKey,
                               LastModifiedLocalDtm = DateTime.Now,
                           };
        //验证柜子
        if (_chestService.IsExistChest(newChest))
        {
            Lsavemsg.ForeColor = Color.Red;
            Lsavemsg.Text = "同一科室里已存在相同的编号或药柜名称!请重新选择!";
            return;
        }
        else
        {
            Lsavemsg.Text = ""; 
        }

        newChest = _chestService.InsertChest(newChest);

        //抽屉
        var newDrawList = new List<Drawer>();
        oldDrawerList.ToList().ForEach(d => newDrawList.Add(new Drawer
                                                               {
                                                                   ChestKey = newChest.ChestKey,
                                                                   DrawerType = d.DrawerType,
                                                                   DrawerUID = d.DrawerUID,
                                                                   NameText = d.NameText,
                                                                   Height = d.Height,
                                                                   UnitID = d.UnitID,
                                                                   SortNo = d.SortNo,
                                                                   DescText = d.DescText,
                                                                   State = d.State,
                                                                   CreatedActorKey = user.UserAccountKey,
                                                                   CreatedLocalDtm = DateTime.Now,
                                                                   LastModifiedActorKey = user.UserAccountKey,
                                                                   LastModifiedLocalDtm = DateTime.Now,
                                                                   RescueStorage = d.RescueStorage,
                                                               }));
        newDrawList = _chestService.InsertDrawerList(newDrawList).ToList();

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权