コード例 #1
0
        public virtual void FillCommand(DbCommand command, DataParameter[] parameterList)
        {
            command.CommandText = GetCommandText(parameterList, true);

            string sql = GetCommandText(parameterList, true);
            // 从Sql创建参数
            var paramNames = DataPublic.FindParameters(sql);

            foreach (var paramName in paramNames)
            {
                DbParameter dbParam;
                // 如果参数列表中已经存在,则不再重复
                if (command.Parameters.Contains(paramName))
                {
                    dbParam = command.Parameters[paramName];
                }
                else
                {
                    dbParam = command.CreateParameter();
                    dbParam.ParameterName = paramName;
                    command.Parameters.Add(dbParam);
                }

                // 设置参数值
                if (parameterList.IsNotNullOrEmpty())
                {
                    var paramValue = parameterList.Where(p => p.Name == paramName).FirstOrDefault();
                    if (paramValue != null)
                    {
                        dbParam.Value = paramValue.Value;
                    }
                }
            }
        }
コード例 #2
0
        public virtual DataParameter[] GetDefinedParameters()
        {
            List <DataParameter> parameters = new List <Data.DataParameter>();

            string sql = GetCommandText(null, false);
            // 从Sql创建参数
            var paramNames = DataPublic.FindParameters(sql);

            foreach (var paramName in paramNames)
            {
                // 如果参数列表中已经存在,则不再重复
                if (parameters.Any(p => p.Name == paramName))
                {
                    continue;
                }
                DataParameter predefinedParam = null;
                if (Parameters.IsNotNull())
                {
                    predefinedParam = Parameters.Where(p => p.Name == paramName).FirstOrDefault();
                }
                if (predefinedParam != null)
                {
                    parameters.Add(predefinedParam);
                }
                else
                {
                    var newParam = new DataParameter(paramName, DbType.String);
                    parameters.Add(newParam);
                }
            }
            return(parameters.ToArray());
        }