示例#1
0
        public static SqlParameter[] GetParameterValues <T>(string procedureName, T objInfo)
        {
            DataTable dtProcedureInfo = GetProcedureInfo(procedureName);

            if (dtProcedureInfo.Rows.Count == 0)
            {
                throw new ArgumentException("Không tìm thấy procedure");
            }
            SqlParameter[] sqlParameter = new SqlParameter[dtProcedureInfo.Rows.Count];

            string strFieldName = "";

            Dictionary <string, object> dicProperty = new Dictionary <string, object>();
            Type pType = objInfo.GetType();

            foreach (System.Reflection.PropertyInfo info in pType.GetProperties())
            {
                dicProperty.Add(info.Name, info.GetValue(objInfo, null));
            }

            object objO = new object();

            for (int i = 0; i < dtProcedureInfo.Rows.Count; i++)
            {
                try
                {
                    strFieldName    = dtProcedureInfo.Rows[i]["PARAMETER_NAME"].ToString().Trim();
                    strFieldName    = strFieldName.Replace("@", "");
                    sqlParameter[i] = new SqlParameter(dtProcedureInfo.Rows[i]["PARAMETER_NAME"].ToString(), Null.GetNull(dicProperty[strFieldName], DBNull.Value));
                    if (dtProcedureInfo.Rows[i]["DATA_TYPE"].ToString().Equals("image") == true)
                    {
                        sqlParameter[i].SqlDbType = SqlDbType.Image;
                    }
                }
                catch (Exception ex)
                {
                    throw new System.ArgumentException("Trường gây lỗi: " + strFieldName + " :" + ex.Message);
                }
            }
            return(sqlParameter);
        }
示例#2
0
 /// <summary>
 /// Hàm này dùng để map các tham số
 /// </summary>
 /// <param name="procedureName"></param>
 /// <param name="sqlParameter"></param>
 /// <param name="parameterValues"></param>
 private static void AssignParameterValues(string procedureName, SqlParameter[] sqlParameter, params object[] parameterValues)
 {
     if (String.IsNullOrEmpty(procedureName) == true)
     {
         throw new ArgumentException("Bạn chưa điền tên procedure");
     }
     if (parameterValues != null && parameterValues.Length > 0)
     {
         DataTable dtProcedureInfo = GetProcedureInfo(procedureName);
         if (dtProcedureInfo.Rows.Count == 0)
         {
             throw new ArgumentException("Không tìm thấy procedure");
         }
         if (dtProcedureInfo.Rows.Count != parameterValues.Length)
         {
             throw new ArgumentException("Không thể map các đối tượng");
         }
         for (int i = 0; i <= dtProcedureInfo.Rows.Count - 1; i++)
         {
             sqlParameter[i] = new SqlParameter(dtProcedureInfo.Rows[i]["PARAMETER_NAME"].ToString(), Null.GetNull(parameterValues[i], DBNull.Value));
             if (dtProcedureInfo.Rows[i]["DATA_TYPE"].ToString().Equals("image") == true)
             {
                 sqlParameter[i].SqlDbType = SqlDbType.Image;
             }
         }
     }
 }