📄 ormwriter.cs
字号:
//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Text;
//using System.Data;
//using System.Data.SqlClient;
//using System.Reflection;
//using System.Transactions;
//namespace MiniORM.BAK
//{
// /// <summary>
// /// ORM写入器,向数据库中写入记录
// /// </summary>
// public class OrmWriter
// {
// /// <summary>
// /// 向数据库中插入INS.Model中的对象
// /// </summary>
// /// <param name="ModelObject">记录Model</param>
// /// <returns>记录Model</returns>
// public object Write(object ModelObject)
// {
// Log("开始进入Write()函数");
// //新记录ID
// int iNewID = 0;
// List<SqlParameter> Params = new List<SqlParameter>();
// //插入SQL,并且把SqlParameters的初始化也放在里面,避免两次进行ModelObject的反射操作
// string strSQL = PubFuncs.GetInsertSQL(ModelObject, ref Params);
// Log("GetInsertSQL:" + strSQL);
// //// 构造Params数组
// //SqlParameter[] Params = GetParamsWithValue(ModelObject);
// SqlCommand cmd = new SqlCommand();
// foreach (SqlParameter Param in Params)
// {
// cmd.Parameters.Add(Param);
// }
// Log("TransactionScope:Begin");
// using (TransactionScope scope = new TransactionScope())
// {
// Log("using (TransactionScope scope = new TransactionScope())");
// // 建立数据库连接
// //using (SqlConnection conn = new SqlConnection("server=(local);user id=sa;password=;database=INSClient;min pool size=4;max pool size=16;packet size=10240"))
// using (SqlConnection conn = new SqlConnection(INS.DBUtility.SqlHelper.INSClient_Trade_ConnectionString))
// {
// Log("conn.Open()前");
// conn.Open();
// Log("conn.Open()后");
// cmd.Connection = conn;
// cmd.CommandType = CommandType.Text;
// cmd.CommandText = strSQL;
// using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
// {
// Log("rdr.Read()前");
// rdr.Read();
// Log("rdr.Read()后");
// if (rdr.GetInt32(1) != 0)
// throw new ApplicationException("插入新记录" + ModelObject.ToString() + "出错,SQL错误号:" + rdr.GetInt32(1)); ;
// cmd.Parameters.Clear();
// iNewID = rdr.GetInt32(0); //返回ID
// //设置对象的Key值
// PubFuncs.SetKeyValue(ModelObject, iNewID);
// }
// }
// Log("保存子对象前");
// #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, iNewID);
// //插入对象
// Write(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, iNewID);
// // //插入对象
// // Write(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, iNewID);
// //插入对象
// Write(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, iNewID);
// //插入对象
// Write(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, iNewID);
// //插入对象
// Write(obj);
// }
// }
// break;
// }
// }
// }
// }
// #endregion
// Log("scope.Complete()前");
// scope.Complete();
// Log("scope.Complete()后");
// }
// return ModelObject;
// }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -