⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ormwriter.cs

📁 一个小型的ORM框架,写得不好请多多指教
💻 CS
📖 第 1 页 / 共 2 页
字号:

//        /// <summary>
//        /// 修改记录
//        /// </summary>
//        /// <param name="ModelObject">记录Model</param>
//        /// <returns>记录Model</returns>
//        public object Update(object ModelObject)
//        {
//            int iObjectID = 0;
//            List<SqlParameter> Params = new List<SqlParameter>();
//            string strSQL = PubFuncs.GetUpdateSQL(ModelObject, ref Params);

//            SqlCommand cmd = new SqlCommand();
//            foreach (SqlParameter Param in Params)
//            {
//                cmd.Parameters.Add(Param);
//            }

//            using (TransactionScope scope = new TransactionScope())
//            {
//                // 建立数据库连接
//                using (SqlConnection conn = new SqlConnection(INS.DBUtility.SqlHelper.INSClient_Trade_ConnectionString))
//                {
//                    conn.Open();
//                    cmd.Connection = conn;
//                    cmd.CommandType = CommandType.Text;
//                    cmd.CommandText = strSQL;

//                    if (strSQL.Contains("INSERT"))
//                    {
//                        //表示是插入
//                        using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
//                        {
//                            rdr.Read();

//                            if (rdr.GetInt32(1) != 0)
//                                throw new ApplicationException("插入新记录" + ModelObject.ToString() + "出错,SQL错误号:" + rdr.GetInt32(1)); ;

//                            cmd.Parameters.Clear();
//                            iObjectID = rdr.GetInt32(0);  //返回ID

//                            //设置对象的Key值
//                            PubFuncs.SetKeyValue(ModelObject, iObjectID);
//                        }
//                    }
//                    else
//                    {
//                        //表示是修改,根据SQL_UPDATE语句修改数据库
//                        int iReturnNumber = cmd.ExecuteNonQuery();
//                        if (iReturnNumber <= 0)
//                        {
//                            throw new ApplicationException("修改" + ModelObject.ToString() + "的时候出错。");
//                        }

//                        iObjectID = Convert.ToInt32(PubFuncs.GetKeyValue(ModelObject));
//                    }

//                    cmd.Parameters.Clear();
//                }

//                #region 保存子对象
//                PropertyInfo[] props = ModelObject.GetType().GetProperties();
//                MiniORMAttribute.SubDataObjectAttribute SubDataAttr = null;
//                object[] CustomAttributes;

//                foreach (PropertyInfo prop in props)
//                {
//                    CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.SubDataObjectAttribute), false);
//                    if (CustomAttributes.Length > 0)
//                    {
//                        SubDataAttr = CustomAttributes[0] as MiniORMAttribute.SubDataObjectAttribute;
//                        if (SubDataAttr != null)
//                        {
//                            switch (SubDataAttr.FieldType)
//                            {
//                                case MiniORMAttribute.SubDataObjectFieldType.Object:
//                                    {
//                                        object objModel = prop.GetValue(ModelObject, null);
//                                        //设置objModel的Foreignkey为当前新记录的ID
//                                        PubFuncs.SetForeignkeyValue(objModel, iObjectID);
//                                        //插入对象
//                                        Update(objModel);
//                                    }
//                                    break;
//                                //case MiniORMAttribute.SubDataObjectFieldType.MyHashTable:
//                                //    {
//                                //        System.Collections.ICollection colValues = ((INS.Model.MyHashTable)prop.GetValue(ModelObject, null)).Values;
//                                //        foreach (object obj in colValues)
//                                //        {
//                                //            //设置objModel的Foreignkey为当前新记录的ID
//                                //            PubFuncs.SetForeignkeyValue(obj, iObjectID);
//                                //            //插入对象
//                                //            Update(obj);
//                                //        }
//                                //    }
//                                //    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.HashTable:
//                                    {
//                                        System.Collections.ICollection colValues = ((System.Collections.Hashtable)prop.GetValue(ModelObject, null)).Values;
//                                        foreach (object obj in colValues)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iObjectID);
//                                            //插入对象
//                                            Update(obj);
//                                        }
//                                    }
//                                    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.List:
//                                    {
//                                        System.Collections.IList list = (System.Collections.IList)prop.GetValue(ModelObject, null);
//                                        foreach (object obj in list)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iObjectID);
//                                            //插入对象
//                                            Update(obj);
//                                        }
//                                    }
//                                    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.ArrayList:
//                                    {
//                                        System.Collections.ArrayList list = (System.Collections.ArrayList)prop.GetValue(ModelObject, null);
//                                        foreach (object obj in list)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iObjectID);
//                                            //插入对象
//                                            Update(obj);
//                                        }
//                                    }
//                                    break;
//                            }
//                        }
//                    }
//                }
//                #endregion

//                //提交事务
//                scope.Complete();
//            }

//            return ModelObject;
//        }

//        private void Log(string Log)
//        {
//            //System.IO.StreamWriter sw = new System.IO.StreamWriter(this.GetType().Assembly.Location + "ORMLog.txt");
//            System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\webroot\WebService_InsClient1\ORMLog.txt");
            
//            sw.WriteLine(Log);
//            sw.Close();
//        }
//    }
//}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -