?? pubfuncs.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
//{
// public class PubFuncs
// {
// private static Hashtable _HashKeyName = new Hashtable();
// private static Hashtable _HashForeignKeyName = new Hashtable();
// private static Hashtable _HashTablename = new Hashtable();
// private static Hashtable _HashObjectType = new Hashtable();
// /// <summary>
// /// 返回對象的Select語句,在讀取對象的時候使用
// /// </summary>
// /// <param name="ModelObject"></param>
// /// <returns></returns>
// public static string GetReadSQL(object ModelObject, ref List<SqlParameter> Params)
// {
// string strSelectSQL = "SELECT {0} FROM {1} WHERE {2};";
// string strTablename = "";
// string strWhere = "";
// StringBuilder sbFields = new StringBuilder();
// //取數據庫表名
// strTablename = PubFuncs.GetTableName(ModelObject);
// PropertyInfo[] props = ModelObject.GetType().GetProperties();
// MiniORMAttribute.DataFieldAttribute FieldAttr = null;
// object[] CustomAttributes;
// int i = 0;
// foreach (PropertyInfo prop in props)
// {
// CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
// if (CustomAttributes.Length > 0)
// {
// FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;
// if (FieldAttr is MiniORMAttribute.DataFieldAttribute)
// {
// if (i > 0) sbFields.Append(",");
// sbFields.Append(FieldAttr.FieldName);
// i++;
// //對于標識字段,不做處理
// if (FieldAttr.IsIdentity)
// {
// //構造 " WHERE ID = @ID "這樣的語句
// strWhere += (((strWhere.Length == 0) ? " " : " AND ") + FieldAttr.FieldName + " = @" + FieldAttr.FieldName);
// //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
// Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
// }
// }
// }
// }
// if (strWhere == "")
// {
// //如果沒有設置Indentity字段的話,那么設置不讀取信息
// strWhere = " 1=2 ";
// }
// if (sbFields.ToString().Trim() != "")
// {
// string[] Args = new string[] { sbFields.ToString(), strTablename, strWhere };
// string strReturn = string.Format(strSelectSQL, Args);
// return strReturn;
// }
// else
// {
// throw new Exception(ModelObject.ToString() + "構造Select語句失敗,字段字符串為空。");
// }
// }
// /// <summary>
// /// 返回Insert語句:格式:Insert into Tablename (Field1,Field2,...Fieldn) Values(@Field1,@Field2,...@Fieldn)
// /// </summary>
// /// <param name="ModelObject"></param>
// /// <param name="Params"></param>
// /// <returns></returns>
// public static string GetInsertSQL(object ModelObject, ref List<SqlParameter> Params)
// {
// string strTablename = "";
// string strInsertSQL = "DECLARE @IDENTITY_ID INT,@ERR_CODE INT;INSERT INTO {0}({1}) VALUES({2});SELECT @IDENTITY_ID = @@IDENTITY,@ERR_CODE=@@ERROR;SELECT @IDENTITY_ID, @ERR_CODE";
// System.Text.StringBuilder strFields = new System.Text.StringBuilder();
// System.Text.StringBuilder strValues = new System.Text.StringBuilder();
// int i = 0;
// //取數據庫表名
// strTablename = GetTableName(ModelObject);
// PropertyInfo[] props = ModelObject.GetType().GetProperties();
// MiniORMAttribute.DataFieldAttribute FieldAttr = null;
// object[] CustomAttributes;
// i = 0;
// foreach (PropertyInfo prop in props)
// {
// CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
// if (CustomAttributes.Length > 0)
// {
// FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;
// if (FieldAttr != null)
// {
// if (FieldAttr is MiniORMAttribute.DataFieldAttribute)
// {
// //對于標識字段,不做處理
// if (!FieldAttr.IsIdentity)
// {
// if (i > 0)
// {
// strFields.Append(",");
// strValues.Append(",");
// }
// //只處理值類型字段,對于引用類型或者其他類型的變量,將作為Model對象來另外處理
// strFields.Append(FieldAttr.FieldName);
// strValues.Append("@" + FieldAttr.FieldName);
// i++;
// }
// //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
// Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
// }
// }
// }
// }
// if (strFields.ToString().Trim() != "" && strValues.ToString().Trim() != "")
// {
// string[] Args = new string[] { strTablename, strFields.ToString(), strValues.ToString() };
// string strReturn = string.Format(strInsertSQL, Args);
// return strReturn;
// }
// else
// {
// throw new Exception(ModelObject.ToString() + "構造Insert語句失敗,字段字符串為空。");
// }
// }
// /// <summary>
// /// 返回Update語句,如果ModelObject.PrimaryKey不存在,那么將返回InsertSQL
// /// </summary>
// /// <param name="ModelObject"></param>
// /// <returns></returns>
// public static string GetUpdateSQL(object ModelObject, ref List<SqlParameter> Params)
// {
// string strUpdateSQL = "UPDATE {0} SET {1} WHERE {2}";
// string strTablename = "";
// string strWHERE = "";
// StringBuilder strSET = new StringBuilder();
// int i = 0;
// //取數據庫表名
// strTablename = GetTableName(ModelObject);
// MiniORMAttribute.DataFieldAttribute FieldAttr = null;
// PropertyInfo[] props = ModelObject.GetType().GetProperties();
// object[] CustomAttributes;
// foreach (PropertyInfo prop in props)
// {
// CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
// if (CustomAttributes.Length > 0)
// {
// FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;
// if (FieldAttr != null)
// {
// if (FieldAttr.IsIdentity)
// {
// object keyvalue = prop.GetValue(ModelObject, null);
// //如果要修改的記錄主鍵為0(對于int類型)或者為空(對于char型),那么執行插入操作
// if (Convert.ToString(keyvalue) == "0" || Convert.ToString(keyvalue) == "")
// {
// //重新清空Parameter,避免在InsertSQL中發生重復
// Params.Clear();
// return GetInsertSQL(ModelObject, ref Params);
// }
// strWHERE = FieldAttr.FieldName + " = @" + FieldAttr.FieldName;
// }
// else
// {
// if (i > 0) strSET.Append(",");
// strSET.Append(FieldAttr.FieldName + " = @" + FieldAttr.FieldName);
// i++;
// }
// //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
// Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
// }
// }
// }
// if (strSET.Length > 0)
// {
// return string.Format(strUpdateSQL, new string[] { strTablename, strSET.ToString(), strWHERE });
// }
// return "";
// }
// /// <summary>
// /// 返回指定程序集,指定命名空間,指定類名的類型
// /// </summary>
// /// <param name="assemblyname">程序集名</param>
// /// <param name="namespacename">命名空間</param>
// /// <param name="classname">類名</param>
// /// <returns></returns>
// public static Type GetObjectType(string assemblyname, string namespacename, string classname)
// {
// Type objType = (Type)_HashObjectType[assemblyname + namespacename + classname];
// if (objType == null)
// {
// object obj = _HashObjectType[assemblyname + namespacename + classname];
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -