SqlParameter 事务 批量数据插入

不错,很好,以后防注入批量事务提交虽然麻烦点研究了几个小时,但不会是问题了

 1  SqlCommand cmd;
 2         HelpSqlServer helps = new HelpSqlServer();
 3         //定义SqlParameter数组
 4         SqlParameter[] param = new SqlParameter[4];
 5
 6
 7         protected void Page_Load(object sender, EventArgs e)
 8         {
 9             var strsql = "";
10             for (int i = 0; i < 4; i++)
11             {
12                 strsql += "insert into  Questions(PID) values";
13                 strsql += "(@PID" + i + ");";
14
15                 param[i] = new SqlParameter("@PID" + i + "", SqlDbType.UniqueIdentifier);
16                 param[i].Value = Guid.NewGuid();
17
18             }
19
20             using (SqlConnection conn = new SqlConnection(HelpSqlServer.ConnectionString))
21             {
22                 cmd = new SqlCommand(strsql, conn);
23
24
25                 conn.Open();
26                 SqlTransaction transaction = conn.BeginTransaction();
27
28                 cmd.Transaction = transaction;
29                 foreach (SqlParameter para in param)
30                 {
31                     cmd.Parameters.Add(para);
32                 }
33
34                 try
35                 {
36                     cmd.ExecuteNonQuery();
37                     transaction.Commit();
38                 }
39                 catch
40                 {
41                     transaction.Rollback();
42                 }
43             }
44
45         }

时间: 2024-08-14 06:30:44

SqlParameter 事务 批量数据插入的相关文章

数据库批量数据插入问题分析

在数据库的相关开发中,经常会遇到数据的批量插入问题.本文主要是通过实验的方式探讨批量数据插入的瓶颈,以及优化建议. 以10w条记录的插入作为实验对象,采用下面的几种方法插入: 1.       普通插入:普通的一条条插入 2.       普通插入+手动提交:setAutoCommit(false).commit() 3.       普通插入+手动提交+ prepareStatement方式 4.       批量插入:addBatch.executeBatch 5.       批量插入:i

批量数据插入高效 转发

public static void insert() { // 开时时间 Long begin = new Date().getTime(); // sql前缀 String prefix = "INSERT INTO tb_big_data (count, create_time, random) VALUES "; try { // 保存sql后缀 StringBuffer suffix = new StringBuffer(); // 设置事务为非自动提交 conn.setAu

自学.net(5)SqlBulkCopy批量数据插入

插个1万条的数据用了40多秒,我感觉我这个代码还是有问题 using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System

使用SqlBulkCopy进行批量数据插入

1 Dim dt As DataTable = New DataTable() 2 dt.Columns.Add("DtCostProductRuleGUID", GetType(Guid)) 3 dt.Columns.Add("RecollectGUID", GetType(Guid)) 4 dt.Columns.Add("ProjCode", GetType(String)) 5 dt.Columns.Add("ProductGUI

批量数据入库

下面主要介绍数据库批量操作数据(主要是 Insert)的方法,涉及 SQL Server.DB2.MySQL 等. SQL Server 首先,准备工作,新建一个数据库实例 在数据库实例中新建一张数据表 自认而然,最常用的是普通的 insert 方法,可以插入一条或多条数据 但是,在大数据量的情况下,普通的 insert 方法插入批量数据执行太慢. 参见:.NET批量大数据插入性能分析及比较: 下面提供 2 种方法,提高批量数据插入效率: (1)SqlBulkCopy .Net 2.0 提供 S

C# 采用事务批量插入数据

首先要构建一个实体类,注意实体类的属性和数据的列要一一对应,否则会报错. public class Animal { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public string Color { get; set; } } 根据实体类获取要插入的表结构 public static string GetProperty<T>(T t) { st

一次性事务和CTE插入数据的比较

有时要构造一些数据来做测试数据,像下面这样: IF OBJECT_ID(N'T14') IS NOT NULL BEGIN DROP TABLE T14 END GO CREATE TABLE T14 (t14_id INT) GO DECLARE @i INT = 1 WHILE @i <= 1000 BEGIN INSERT INTO T14 (t14_id) SELECT @i SET @i = @i + 1 END GO code-1 这里存在一个问题,每运行一次insert相当于com

C API向MySQL插入批量数据的快速方法——关于mysql_autocommit

MySQL默认的数据提交操作模式是自动提交模式(autocommit).这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行.我们可以通过设置autocommit的值改变是否是自动提交autocommit模式.查询当前数据库事务提交方式的命令为: mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-----

php+mysqli实现批量执行插入、更新及删除数据的方法

本文实例讲述了php+mysqli实现批量执行插入.更新及删除数据的方法.分享给大家供大家参考.具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query(). 下面的代码只是批量插入数据,事实上,插入数据.更新数据.删除数据等可以混合一起执行.查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","