这个函数作用是执行一个带参数的存储过程并返回
一个存储过程有多个参数,当然你可以固定死设定两个参数比如
CreateDataAdaper(string procName, SqlParameter id,SqlParameter name)
但是为了方法的公用,采用SqlParameter[]这样一个组,在组中的话就可以灵活设置参数的数量,但是方法却可以公用
2、foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter)
这个遍历很简单,就是从刚才说的SqlParameter[]中把参数一个一个的取出来,让后在SelectCommand的参数中添加进去
3、dap.SelectCommand.Parameters.Add(……)
这个是具体实例化一个参数,包括该参数的名称、类型、是否返回值等的信息,当然你也可以这么写
SqlParameter a=new SqlParameter(……)
dap.SelectCommand.Parameters.Add(a)
4、回到你的方法调用CreateDataAdaper()
你可能要这么做
SqlParameter[] paras=new SqlParameter[3]//设定三个参数
paras[0]=new SqlParameter(……)//设定第一个参数信息,当然你也可以调用你问题中写的MakeInParam()这个方法构造具体参数
paras[0]=MakeInParam(……);
paras[1],paras[2]依次类推
最后你再调用应该是这样
SqlDataAdapter adapter=CreateDataAdaper("你的存储过程名",paras)
6、dap.SelectCommand.Parameters.Add(parameter)
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null))return dap
至于后面添加查询参数和添加查询结果参数
我觉得只是为了区分故意不写到一起而已
在我看来你完全可以把查询结果参数也搞到那个参数组中去
这样讲楼主明白了么?
《data x传递两个参数到json》。DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。DataX一般和DataX-Web联合使用,实现对任意数据库之间数据同步的调度执行。对于数据的同步,可以是全量更新和增量更新两种方式,对于大数据量的事物数据,例如:销售记录数据的同步,一般都是选择增量更新方式。DataX-Web提供的增量更新支持基于自增ID的增量更新和基于时间的增量更新。在调度执行job任务时,dataX-Web会动态生成参数并在调用DataX执行时传入,例如:Python /opt/module/datax/bin/datax.py -p "-DlastTime=2022-01-01 -DcurrentTime=2022-06-04"登录后复制DataX会把传入的参数写入环境变量,读入json脚本时会通过正则表达式查找${}包含的变量,并搜索环境变量进行替换。通过以上代码分析,可知在json任意的位置定义${}变量,都能够被替换,如:DataX的动态变量替换机制不够灵活,只能实现简单的变量替换,如果需要复杂的变量支持时,DataX就无法实现。例如:DataX-Web只能提供lastTime和currentTime两个参数,如果还需要支持其他参数,就没有办法了。针对这块考虑对DataX进行修改,引入avaitor表达式框架,通过Avaitor表达式丰富的功能,实现复杂的动态参数机制。祝您生活愉快,谢谢提问
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)