【批量加入】-拼接sql字符串

如今做的一个项目须要用到批量加入,可是封装的底层没有这种方法,所以自食其力,自己来写。我们用的是拼接sql字符串的方法来实现功能。

详细实现流程:首先将须要的数据存储到实体的list中,然后将这个list传给我们批量加入的方法。批量加入的方法首先应该打开数据库连接,然后開始进行sql字符串的拼接,拼接完毕后。调用sqlhelper方法进行加入。

详细代码例如以下:

        #region 批量加入实体
        /// <summary>
        /// 批量加入实体
        /// </summary>
        /// <param name="staffscores"></param>
        /// <returns></returns>
        public bool Insert(List<YzQueryStaffScoresEntity> staffscores)
        {
            //打开数据库连接
            SQLHelper sqlHelper = new SQLHelper("data source=192.168.22.239;initial catalog=YzEvaluationSystem;persist security info=True;user id=sa;password=xxx;", true);

            StringBuilder sbSql = new StringBuilder();

            //拼接字符串,加入方法
            sbSql.Append("insert into YzQueryStaffScoresEntity(ID,StaffID,StaffName,WorkEfficiency,ProfessionalEthics,BusinessAbility,HonestyDiscipline,WorkPerformance,other1,other2,Number,TotalScores,IsUsed) values");

            //循环实体list,进行拼接
            if (staffscores.Count > 1)
            {
                for (int i = 0; i < staffscores.Count - 1; i++)
                {
                    sbSql.Append("('" + staffscores[i].ID + "',");
                    sbSql.Append("'" + staffscores[i].StaffID + "',");
                    sbSql.Append("'" + staffscores[i].StaffName + "',");
                    sbSql.Append(staffscores[i].WorkEfficiency + ",");
                    sbSql.Append(staffscores[i].ProfessionalEthics + ",");
                    sbSql.Append(staffscores[i].BusinessAbility + ",");
                    sbSql.Append(staffscores[i].HonestyDiscipline + ",");
                    sbSql.Append(staffscores[i].WorkPerformance + ",");
                    sbSql.Append(staffscores[i].other1 + ",");
                    sbSql.Append(staffscores[i].other2 + ",");
                    sbSql.Append(staffscores[i].Number + ",");
                    sbSql.Append(staffscores[i].TotalScores + ",");
                    sbSql.Append(1);
                    sbSql.Append("),");
                }
                sbSql.Append("('" + staffscores[staffscores.Count - 1].ID + "',");
                sbSql.Append("'" + staffscores[staffscores.Count - 1].StaffID + "',");
                sbSql.Append("'" + staffscores[staffscores.Count - 1].StaffName + "',");
                sbSql.Append(staffscores[staffscores.Count - 1].WorkEfficiency + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].ProfessionalEthics + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].BusinessAbility + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].HonestyDiscipline + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].WorkPerformance + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].other1 + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].other2 + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].Number + ",");
                sbSql.Append(staffscores[staffscores.Count - 1].TotalScores + ",");
                sbSql.Append(1);
                sbSql.Append(")");
            }
            //调用sqlhelper方法进行加入。
            int flag = sqlHelper.ExecuteNonQuery(sbSql.ToString(), System.Data.CommandType.Text);
            if (flag > 0)
            {
                return true;
            }
            else
            {
                return false;
            }

        }
        #endregion

一開始说要自己写sql拼接字符串的时候还认为,哇塞,这肯定特别难。我光听说了,从来没有见过啊。结果一见之下。发现很的简单。

所以。不怕不知道,就怕不知道!各位加油

时间: 2024-08-13 12:50:15

【批量加入】-拼接sql字符串的相关文章

【批量添加】-拼接sql字符串

现在做的一个项目需要用到批量添加,但是封装的底层没有这个方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 具体实现流程:首先将需要的数据存储到实体的list中,然后将这个list传给我们批量添加的方法.批量添加的方法首先应该打开数据库连接,然后开始进行sql字符串的拼接,拼接完成后,调用sqlhelper方法进行添加. 具体代码如下: #region 批量添加实体 /// <summary> /// 批量添加实体 /// </summary> /// &l

Excel 2013拼接Sql字符串

在做开发的过程中,经常需要根据Excel中的数据去数据库查询,少量数据还可以去复制粘贴,大量数据时就需要将Excel中的数据拼接成自己需要的Sql,以提升工作效率. 场景1:将某一列拼接成Sql中的In条件 假设现在有如下的Excel数据,我需要从数据库中查询出这些门店的数据 操作方法如下图所示: 将生成的一列数据复制到Visual Studito Code中,进行替换即可 场景2:将某一列拼接成C#中的List 假设现在有如下的Excel数据,我需要将这些值写在C#中的List<string>

EF架构~过滤导航属性等,拼接SQL字符串

拼接T-SQL串,并使它具有通用性 好处:与服务器建立一次连接,给服务器发一条SQL命令,即可实现 代码如下: 1 /// <summary> 2 /// 构建Insert语句串 3 /// 主键为自增时,如果主键值为0,我们将主键插入到SQL串中 4 /// </summary> 5 /// <typeparam name="TEntity"></typeparam> 6 /// <param name="entity&

MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)

官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储过程拼接 2.函数拼接 3.视图里拼接 4.当前查询的session中使用 其实上面都是同一个意思,就是使用一个变量存取这个SQL,然后再执行这个变量. 样例: set @stmt = concat('select * from ',table_name,' limit ?,?'); prepare

java用字符串拼接SQL语句的特殊字符转义问题

在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如对输入的%和_和',就需要进行转义,因为这3个字符是SQL的特殊字符,如果不处理会导致sql出错或者是查询数据不正确. 假如有这样1个查询请求,模糊查询标题中包含a%b_cc'd的记录,正确的sql应该是下面这样的: select * from t_sch_work_info t where t.t

重构之路 组合查询之传递SQL字符串

既然是使用VB.NET语言对机房收费系统进行重构,那么无可避免的要去解决组合查询的问题,在VB版的实现中这是一个难点,不过大家还是依靠自己或者共同的智慧解决了这个看似复杂的问题. 如今编程的语言不同是一方面,更重要的是系统的结构不一样了,采用了三层架构去实现系统,这样一来就要考虑组合查询的在三层结构中的实现方法.当然,组合查询的核心办法是不变的,都是通过将查询的各个条件组装成SQL查询语句的where子句来实现的,问题就是这个where子句的组装在哪里完成? 如果放在U层完成,那么我们向下传递的

SQLSERVER 根据传入的参数拼接sql语句字符串,反馈结果集

ALTER PROCEDURE [dbo].[usp_visit_detail](@siteid BIGINT, @Startime VARCHAR(15), @Endtime  VARCHAR(15), @Aflag  INT = 10,                                    --初始值为10,非10,则表示有传入参数 @Area   VARCHAR(20) = 'N',               -- --初始值为N,非N,则表示有传入参数 @Nflag  

解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题

今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar(4000)的长度. 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的. 开始想到的方法是将里层的select语句抽出来,用exec(strInnerSql)执行,将查询胡来的数据放到临时表中,在@s中用临时表获取数据,结果以时报告终 错误原因:执行@s语句的时候找不到执行exec(strInnerSql)产生的临时表 好郁闷啊,怎么会这样呢,明明在一个存储过程中执行的,怎么

【2017-04-20】Sql字符串注入式攻击与防御

字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入  a');update Student set Sname ='伊伊';-- 则数据库Sname一列都讲变为  伊伊 原理:用户输入的代码将c#中的sql语句中的sname替换掉了,就变成了下边的黑客想执行的sql语句. insert into Student values('"+sno+"','a')