加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#动态添加SqlParamter参数[转]

(2020-01-11 09:21:46)
标签:

c动态添加

sqlparamter参数

杂谈

分类: 代码天地
1 动态向SqlParameter 里添加相应参数,方法如下

先定义一个List,然后再往List里面添加SqlParameter对象,然后将List转为SqlParameter数组即可

 
List < SqlParameter > ilistStr = new < SqlParameter > List(); 

            ilistStr.Add(new SqlParameter("@Param1", "aa"));

            ilistStr.Add(new SqlParameter("@Param2", "bb"));

            ilistStr.Add(new SqlParameter("@Param3", "cc"));

            ilistStr.Add(new SqlParameter("@Param4", "dd"));

            ilistStr.Add(new SqlParameter("@ParamLike","%keyword%"));//Like的写法

SqlParameter[] param = ilistStr.ToArray();
 
2 相关方法:

 
/// < summary >
        /// 获取数据库参数
        /// < /summary >
        /// < param name="name" > 名称 < /param >
        /// < param name="value" > < /param >
        /// < param name="type" > 数据类型 < /param >
        /// < param name="size" > 长度 < /param >
        /// < returns > < /returns >
        public static SqlParameter GetParameter(string name, object value, SqlDbType type, int size)
        {
            SqlParameter param = new SqlParameter();
            param.ParameterName = name;
            if (type == SqlDbType.DateTime)
            {
                DateTime dtime;
                if (DateTime.TryParse(value.ToString(), out dtime) == false || dtime.Year == 1)
                {
                    param.Value = new DateTime(1970, 1, 1, 0, 0, 0);
                }
                else
                {
                    param.Value = value;
                }
            }
            else if (value == null)
            {
                param.Value = DBNull.Value;
            }
            else
            {
                param.Value = value;
            }
            param.SqlDbType = type;
            param.Size = size;
            return param;
        }
 
3 调用
 
public static List < XModel.PATROL_XPerson > Select(string name,string phone,DateTime dt1,DateTime dt2)
        {
            List < SqlParameter > param = new  < SqlParameter > List();
            string sql = $@"select * from PATROL_X_PERSON as p
            inner join PERSON_INFO i on p.per_code = i.per_code
                where 1=1";
            if (name != "")
            {
                sql += $" and per_name like @name";
                param.Add(XTools.XDB.SQLHelper.GetParameter("@name", name, SqlDbType.Char, 32));
            }
            if (phone != "")
            {
                sql += $" and per_mobile like @phone";
                param.Add(XTools.XDB.SQLHelper.GetParameter("@phone", phone,SqlDbType.Char,32));
            }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有