?? 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 + -