• C#进行IN条件查询的SQL语句使用SqlParameter的通用方法


    C#进行IN条件查询的SQL语句使用SqlParameter的通用方法

    • 创建对象
        public class SqlParameterInfo
        {
            /// <summary>
            /// 变量字符串
            /// </summary>
            public string ParameterStr { get; set; }
            /// <summary>
            /// 参数数组
            /// </summary>
            public SqlParameter[] ParameterArr { get; set; }
        }
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 通用方法
         /// <summary>
            /// 构建参数信息
            /// </summary>
            /// <param name="sgin">参数头名称</param>
            /// <param name="valArr">参数值数组</param>
            /// <param name="parameters">已存在的参数数组</param>
            /// <returns></returns>
            public static SqlParameterInfo BuildParameterInfoByObj(string sgin, object[] valArr, SqlParameter[] parameters)
            {
                if (string.IsNullOrEmpty(sgin))
                {
                    sgin = "tmpParameter" + new Random().Next(1, 100);
                }
                if (valArr==null||valArr.Length==0)
                {
                    return new SqlParameterInfo() { ParameterStr = string.Empty, ParameterArr = parameters };
                }
                StringBuilder builder = new StringBuilder();
                var parameterList = new List<SqlParameter>();
                if (parameters!=null&& parameters.Length>0)
                {
                    parameterList.AddRange(parameters);
                }
                for (int i = 0; i < valArr.Length; i++)
                {
                    builder.Append($"@{sgin}{i},");
                    parameterList.Add(new SqlParameter($"@{sgin}{i}",valArr[i]));
                }
                return new SqlParameterInfo() { ParameterStr = builder.ToString().TrimEnd(','),ParameterArr=parameterList.ToArray() };
            }
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 13.
    • 14.
    • 15.
    • 16.
    • 17.
    • 18.
    • 19.
    • 20.
    • 21.
    • 22.
    • 23.
    • 24.
    • 25.
    • 26.
    • 27.
    • 28.
    • 29.
    • 30.
    • 调用方法Demo
            public object Test()
            {
                using (Test entities = new Test())
                {
                    var parameterValArr = new object[] { "IT部", "人力资源行政部", "财务部" };
                    var parameterValArr2 = new object[] { 1, 5, 6 };
                    var parameterResult = MsSqlHelper.BuildParameterInfoByObj("Dep", parameterValArr, null);
                    var parameterResult2 = MsSqlHelper.BuildParameterInfoByObj("Id", parameterValArr2, parameterResult.ParameterArr);
                    string sql = $"SELECT DepCode,DepName FROM Test WHERE DepName IN({parameterResult.ParameterStr}) AND Id IN ({parameterResult2.ParameterStr})";
                    var result = entities.Database.SqlQuery<Test>(sql, parameterResult2.ParameterArr).ToList();
                    return result;
                }
            }
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 13.
    https://blog.51cto.com/u_15064628/4335703
  • 相关阅读:
    跨域调用webapi web端跨域调用webapi
    如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)
    MVC中使用SignaIR入门教程
    Axure RP是一个专业的快速原型设计工具
    angularJS 学习演示
    说说Angular中的$timeOut定时器
    镜像服务器文件实时监控同步程序
    服务器文件同步管理
    MySQL 数据库双向镜像、循环镜像(复制)
    vs2015密钥 企业版 专业版 (vs.net)
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16162971.html
Copyright © 2020-2023  润新知