`
冷寒冰
  • 浏览: 251638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql 批量插入

SQL 
阅读更多

  private void btnC_Click(object sender, EventArgs e)
        {     //得到每个楼层下面的房号
            List<List<string>> floorandroom = rbgStepThreeWindow.FloorAndRoom;
            //得到所有的楼层
            string[] allfloors = rbgStepThreeWindow.AllFloors;
            //得到楼层和房号是否绑定
           bool _checked=rbgStepThreeWindow.CheckBoxValue;

 


           if (_checked)
           {
               for (int count= 0; count < allfloors.Length; count++)
               {
                   SqlConnection conn = DBConnection.DBOpen();
                   string floorid = Guid.NewGuid().ToString();
                   int bind =1;
                 
                   try
                   {
                       string sql = "insert into dbo.floor(floorID,buildingID,floor_num,floor_bind_to_room)values('" + floorid + "','" + buildingID + "'," + allfloors[count] + "," + bind + ");";
                       SqlCommand cmd = new SqlCommand(sql, conn);
                       cmd.ExecuteNonQuery();
                   }
                   catch
                   {

                       MessageBox.Show("发生异常");
                       return;
                   }
                   finally
                   {
                       if (conn.State == ConnectionState.Open)
                       {
                           conn.Close();
                       }
                   }
                   DataTable dt = GetroomTableSchema();
                   foreach (string ss in floorandroom[count])
                   {
                       DataRow r = dt.NewRow();
                       r["roomID"] = Guid.NewGuid().ToString();
                       r["buildingID"] = buildingID;
                       r["floorID"] =floorid;
                       r["room_name"] = ss;
                       r["ruleid"] = rule_id;
                       dt.Rows.Add(r);
                   }
                   BulkToDB(dt);
               }
           }
           else
           {
               for (int i = 0; i < floorandroom.Count; i++)
               {
                   DataTable dt = GetroomTableSchema();
                   foreach (string ss in floorandroom[i])
                   {
                       DataRow r = dt.NewRow();
                           r["roomID"] = Guid.NewGuid().ToString();
                          r["buildingID"] = buildingID;
                           r["room_name"] = ss;
                          r["ruleid"] = rule_id;
                          dt.Rows.Add(r);
                   }
                   BulkToDB(dt);
               }
            
            
           }
            MessageBox.Show("保存成功");
        }
        public static void BulkToDB(DataTable dt)
        {

            SqlConnection sqlConn = DBConnection.DBOpen();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
            bulkCopy.DestinationTableName = "dbo.room";
            bulkCopy.BatchSize = dt.Rows.Count;

            try
            {
                // sqlConn.Open();
                if (dt != null && dt.Rows.Count != 0)
                    //将源表dt中的所有数据插入到数据库中的目标表中
                    bulkCopy.WriteToServer(dt);
            }
            catch (Exception ex)
            {
              
                throw ex;
               
            }
            finally
            {
                sqlConn.Close();
                if (bulkCopy != null)
                    bulkCopy.Close();
            }
        }
                //build room table
        public static DataTable GetroomTableSchema()
        {
            DataTable dt = new DataTable("dbo.room");
            dt.Columns.AddRange(new DataColumn[]
            {
new DataColumn("roomID",typeof(Guid)),
new DataColumn("buildingID",typeof(Guid)),
new DataColumn("floorID",typeof(Guid)),
new DataColumn("room_name",typeof(string)),
new DataColumn("room_state",typeof(bool)),
new DataColumn("ruleid",typeof(Guid))

            }
            );

            return dt;
        }

0
2
分享到:
评论

相关推荐

    ACCESS和SQL批量插入数据工具

    这就是"ACCESS和SQL批量插入数据工具"的价值所在。这款工具专为数据库管理员和开发人员设计,用于快速、高效地向ACCESS和SQL Server数据库中批量插入数据,尤其在进行负荷测试时,它能显著提高工作效率。 首先,...

    sql20200215_sqlserver_sql批量插入_

    在SQL Server中,批量插入数据是一项常见的操作,尤其在处理大量数据时,高效的批量插入能够显著提高工作效率。本文将详细讲解如何使用SQL语句进行建表以及批量插入数据。 首先,我们来创建一个表。假设我们需要...

    SQL批量插入数据几种方案的性能详细对比

    本文主要探讨了SQL批量插入数据的五种不同方案,以及它们在性能上的详细对比。以下是对这些方案的深入解析: 1. **技术方案一:逐条插入** 这是最基础的方法,通过循环调用存储过程来插入数据。然而,这种方法的...

    C#实现SQL批量插入数据到表的方法

    本文实例讲述了C#实现SQL批量插入数据到表的方法。分享给大家供大家参考,具体如下: #region 帮助实例:SQL 批量插入数据 多种方法 /// /// SqlBulkCopy往数据库中批量插入数据 /// /// 数据源表 /// 服务器上...

    C# Oracle批量插入数据进度条的实现代码

    考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度。 批量插入 项目中...

    sql下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法。第一种方法是使用循环语句逐个将数据项插入到数据库中;第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表;第三种使用的方法是sql server中的...

    用SQL批量插入数据的存储过程

    循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter &lt; 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...

    Delphi批量插入数据库数据..rar

    1. **SQL批量插入**:你可以构建一个包含多条INSERT语句的大SQL命令,然后一次性执行。例如: ```sql INSERT INTO TableName (Column1, Column2, ...) VALUES (Value1, Value2, ...); INSERT INTO TableName ...

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...

    SQL Server批量插入批量更新工具类

    SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate

    用SQL批量插入数据的代码

    在SQL中,批量插入数据是一种高效...总结起来,SQL批量插入是提高数据库操作效率的重要手段,而通过循环结构可以实现动态的、按需的批量插入。在使用时,应根据具体场景调整批量大小和插入策略,以平衡性能和资源占用。

    C#实现批量插入sqlserver数据

    在C#编程中,批量插入数据到SQL Server数据库是一个常见的需求,特别是在处理大量数据时,效率至关重要。本篇文章将详细探讨三种不同的批量插入方法:常规的`INSERT`语句、`SqlBulkCopy`类以及使用表值参数。我们将...

    sqlserver 批量创建表

    这里有两个关键文件:`SQL批量插入数据.sql` 和 `SQL2008批量创建表.sql`,它们分别涉及到了表的创建和数据的批量插入。 首先,我们来讨论如何批量创建表。在SQL Server 2008中,这通常通过编写存储过程或者动态SQL...

    SQLLITE的批量插入。。。

    本话题主要聚焦于SQLite的批量插入操作,这是一种提高数据导入效率的重要技术。 批量插入在处理大量数据时尤其有用,它可以显著减少与数据库交互的次数,从而降低系统资源的消耗并提升性能。在SQLite中,我们可以...

    详解C#批量插入数据到Sqlserver中的四种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据。 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引。GUID必然是比自增长要快的,因为你生成一个GUID算法所花的...

    mybatispuls3.5使用批量插入

    在MyBatisPlus 3.5版本中,批量插入功能是其核心优化之一,这对于大数据量的操作尤其重要,可以显著提高数据插入的效率。 批量插入的优势在于减少了数据库连接的创建和关闭次数,以及降低了网络通信的开销。...

    oracle oci 批量插入源代码

    3. **批量插入**:在Oracle OCI中,批量插入通常涉及使用oci_bind_array_by_name函数将一组数据绑定到同一个SQL插入语句中的多个占位符。这组数据可以是二维数组或其他合适的数据结构。执行oci_execute时,数据库一...

Global site tag (gtag.js) - Google Analytics