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;
}
分享到:
相关推荐
这就是"ACCESS和SQL批量插入数据工具"的价值所在。这款工具专为数据库管理员和开发人员设计,用于快速、高效地向ACCESS和SQL Server数据库中批量插入数据,尤其在进行负荷测试时,它能显著提高工作效率。 首先,...
在SQL Server中,批量插入数据是一项常见的操作,尤其在处理大量数据时,高效的批量插入能够显著提高工作效率。本文将详细讲解如何使用SQL语句进行建表以及批量插入数据。 首先,我们来创建一个表。假设我们需要...
本文主要探讨了SQL批量插入数据的五种不同方案,以及它们在性能上的详细对比。以下是对这些方案的深入解析: 1. **技术方案一:逐条插入** 这是最基础的方法,通过循环调用存储过程来插入数据。然而,这种方法的...
本文实例讲述了C#实现SQL批量插入数据到表的方法。分享给大家供大家参考,具体如下: #region 帮助实例:SQL 批量插入数据 多种方法 /// /// SqlBulkCopy往数据库中批量插入数据 /// /// 数据源表 /// 服务器上...
考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度。 批量插入 项目中...
本文将介绍三种批量插入数据的方法。第一种方法是使用循环语句逐个将数据项插入到数据库中;第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表;第三种使用的方法是sql server中的...
循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...
1. **SQL批量插入**:你可以构建一个包含多条INSERT语句的大SQL命令,然后一次性执行。例如: ```sql INSERT INTO TableName (Column1, Column2, ...) VALUES (Value1, Value2, ...); INSERT INTO TableName ...
本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...
SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate
在SQL中,批量插入数据是一种高效...总结起来,SQL批量插入是提高数据库操作效率的重要手段,而通过循环结构可以实现动态的、按需的批量插入。在使用时,应根据具体场景调整批量大小和插入策略,以平衡性能和资源占用。
在C#编程中,批量插入数据到SQL Server数据库是一个常见的需求,特别是在处理大量数据时,效率至关重要。本篇文章将详细探讨三种不同的批量插入方法:常规的`INSERT`语句、`SqlBulkCopy`类以及使用表值参数。我们将...
这里有两个关键文件:`SQL批量插入数据.sql` 和 `SQL2008批量创建表.sql`,它们分别涉及到了表的创建和数据的批量插入。 首先,我们来讨论如何批量创建表。在SQL Server 2008中,这通常通过编写存储过程或者动态SQL...
本话题主要聚焦于SQLite的批量插入操作,这是一种提高数据导入效率的重要技术。 批量插入在处理大量数据时尤其有用,它可以显著减少与数据库交互的次数,从而降低系统资源的消耗并提升性能。在SQLite中,我们可以...
本篇,我将来讲解一下在Sqlserver中批量插入数据。 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引。GUID必然是比自增长要快的,因为你生成一个GUID算法所花的...
在MyBatisPlus 3.5版本中,批量插入功能是其核心优化之一,这对于大数据量的操作尤其重要,可以显著提高数据插入的效率。 批量插入的优势在于减少了数据库连接的创建和关闭次数,以及降低了网络通信的开销。...
3. **批量插入**:在Oracle OCI中,批量插入通常涉及使用oci_bind_array_by_name函数将一组数据绑定到同一个SQL插入语句中的多个占位符。这组数据可以是二维数组或其他合适的数据结构。执行oci_execute时,数据库一...