zoukankan      html  css  js  c++  java
  • 记录一下动态生sqlParameter[]

    生成SqlParameter[]

     public class DbParameterGenerator
        {
            /// <summary>
            /// 根据方法的参数获取sqlparameter
            /// </summary>
            /// <param name="method">方法对像</param>
            /// <param name="values">参数对应的值</param>
            /// <returns></returns>
            public static System.Data.SqlClient.SqlParameter[] GetParameterGenerator(System.Reflection.MethodInfo method, object[] values)
            {
    
                if (method == null)
                {
                    method = (MethodInfo)new System.Diagnostics.StackTrace().GetFrame(1).GetMethod();
                }
                ParameterInfo[] param = method.GetParameters();
                SqlParameter[] sqlParam = new SqlParameter[values.Length];
                int count = 0;
                for (int i = 0; i < param.Length; i++)
                {
                    if (Attribute.IsDefined(param[i], typeof(NoDataFiledAttribute)))
                    {
                        continue;
                    }
                    DataFiledAttribute d = Attribute.GetCustomAttribute(param[i], typeof(DataFiledAttribute)) as DataFiledAttribute;
                    SqlParameter sparam = null;
                    if (d.FieldName.StartsWith("@"))
                    {
                        sparam = new SqlParameter(d.FieldName, values[count]);
                    }
                    else
                    {
                        sparam = new SqlParameter("@" + d.FieldName, values[count]);
    
                    }
                    sqlParam[count] = sparam;
                    count++;
                }
                return sqlParam;
            }
    
        }

    test类:

     public class test
        {
            public static SqlParameter[] TestParam([DataFiled("id", SqlDbType.Int)] int id, [NoDataFiled] int userID)
            {
                SqlParameter[] param = DbParameterGenerator.GetParameterGenerator(MethodInfo.GetCurrentMethod() as MethodInfo, new object[] { id });
                return param;
            }
        }
  • 相关阅读:
    Atitit 图像处理类库 halcon11  安装与环境搭建attilax总结
    Atitit  undac网络设备管理法案 (路由器 交换机等)    法案编号USRr101510
    Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结
    Atitit Seed-Filling种子填充算法attilax总结
    Atitti 图像处理 特征提取的科技树 attilax总结
    Atitit 软件体系的进化,是否需要一个处理中心
    Atitit 项目的主体设计与结构文档 v5
    Atitti 过程导向 vs 结果导向 attilax的策略
    Atitti 过程导向 vs 结果导向 attlax的策
    Atitit 版本管理----分支管理
  • 原文地址:https://www.cnblogs.com/guolihao/p/2863993.html
Copyright © 2011-2022 走看看